2017-09-08 8 views
1

私はPythonの初心者です。私の質問は、モジュール上のメソッドの引数名を知る方法です。例えば、smpplibモジュールページ(https://github.com/podshumok/python-smpplib)に私は私がbind_transceiver機能は、パスワード(およびsystem_typeに)変数をSYSTEM_IDたことを知ることができる方法を知って何Pythonモジュールのメソッドの可能な変数

client.bind_transceiver(system_id='login', password='secret') 

以下のようにラインを持っているコード例を参照してください。

ヘルプ(smpplib.client.Client)だけbind_transceiver

に関する情報の下に私を与える: bind_transceiver(自己、**引数) バインド一度

+1

args'は、任意のキーワードパラメータを受け入れる '**、実際にコードやドキュメントを読まずに何でもするかを決定する方法はありません。 – jonrsharpe

+0

これは愚かな質問であれば申し訳ありません。任意のキーワードパラメータを受け入れるとsystemidの代わりにsystemidを使用できます – Mohammad

+0

確かに! 'client.bind_transceiver(bananas = 'login')'という定義があればそれを呼び出すことができますが、それはあまり期待しません。 – jonrsharpe

答えて

0

の送信機と受信機としてtl; dr見つけ出すには、ソースコードまたはドキュメントを参照する必要があります。

bind_transmitter**argsを使用します。これにより、関数を呼び出す人はキーワード引数の任意の数を渡すことができます。たとえば、次のような

bind_transmitter() # valid 
bind_transmitter(a=1, b='4') # valid 
bind_transmitter(myarg=1, m=6, y=7, system_id='me', password='secret') # valid 

、実際にソースコードやドキュメントを調べずに使用しますbind_transmitterキーワード引数を知る方法はありません。 「 - 値引数受け入れられている任意のキーが」

+0

私は必要な変数名がモジュールのドキュメントで見つかるはずだと思ったので、モジュールのコードも読んでください。すべての説明のおかげで私は多くの助けを得ました – Mohammad

0

時々、Pythonで、機能は意味**kwargs引数を持っています。

キーと値のペアは、あなたの例のように渡されます。

client.bind_transceiver(system_id='login', password='secret') 

機能の実装コードアクセスキー - 辞書kwargsと値のペアを。だから、内部コードのようなものだろう。この関数へお電話の出力は次のようになり

def bind_transceiver(self, **kwargs): 
    # Do something with system id 
    print(kwargs['system_id']) 
    # Do something with password 
    print(kwargs['password]) 

login 
password 
あなたが関数に任意のキーと値のペアを渡すことができますが、唯一の2つの方法があります

どのキーが実際に消費されるかを理解する。

  1. 使用されていない

キーズは、機能の範囲内で辞書引数にとにかく保存されますが、彼らは何の効果もありません。コードを読む機能のドキュメント

  • を読みます。

    関数が*argsのような別の引数を受け入れることも可能です。これは、辞書の代わりに、関数によって同様の方法でタプルのように読み込まれますが、位置番号をキーとして使用されます。

  • 関連する問題