2015-10-12 9 views
7

私はPythonで新しく、Python関数で渡されるパラメータの量を取得する簡単な方法があるかどうかを知りたがっています。Python関数で渡されるパラメータの数を確認する

a(1, 2, 3) ==>3 
a(1, 2) ==>2 
+0

[Python関数内のパラメータ名のリストを取得する](http://stackoverflow.com/questions/582056/getting-list-of-parameter-names-inside-python-function) – TigerhawkT3

+0

可能性があります](http://stackoverflow.com/questions/218616/getting-method-parameter-names-in-python)。 – TigerhawkT3

+0

これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)です。 – TigerhawkT3

答えて

4

あなたは地元の人々を使用してこれを行うことができます()

これは、のように最終的にあなたの方法であなたの最初のステップを行うべきであることに、注意することが重要です。メソッドに新しい変数を導入すると、結果が変更されます。だから、あなたはそれをこのように従っていることを確認します

def a(a, b, c): 
    # make this your first statement 
    print(len(locals())) 

あなたはこれをしなかった場合:

def a(a, b, c): 
    z = 5 
    print(len(locals())) 

をあなたは、あなたの期待される結果のために右ではないと思われる、4を得ることになります。

a(your_list) 

、その後に渡された引数の数を知っている:あなたもそう機能を持つように、リストにあなたの関数の入力を変更することができlocals()

+1

おそらく、関数内で代入を実行する前にこれを行う必要があると言えるでしょう。 – Marius

+0

ありがとう@マリアス、よろしくお願いします。私はそれを変更し、あなたの考えを教えてください。 – idjaw

+1

ありがとう、実際に私は関数の初めに使用します。 – JasmineOT

8
def a(*args, **kwargs): 
    print(len(args) + len(kwargs)) 
+0

私はこのアンカーに+1を与えています。なぜなら、関数内での引数の数え方は、それらの可変量があるときだけ意味をなすからです。 – VPfB

0

ドキュメント機能、 あなたは単に行うことができます:

print len(your_list) 

しかし、これは、関数の入力タイプ を多くの入力変数から1つのリスト(要素の数を変えることができる)に変更することを意味します。

関連する問題