2016-04-23 9 views
-1

1- Pythonでは、どのクラスが2つのアンダースコア(例えば:__gt__,__eq__、...)で始まり、終了するメソッドを実行するのですか?Pythonの組み込みメソッドはどのクラスに属していますか?

2-すべてのPythonプログラムに対して暗黙的にインポートされるクラス/モジュールはどれですか?

3-任意のメソッドのクラス名を取得する一般的な方法はありますか?

+1

1.どのクラスがそれらを定義しているか – zondo

+0

[Pythonの魔法の手引き](http://www.rafekettler.com/magicmethods.html)を見てください。 FWIWでは、これらのメソッドは[dunderメソッド](http://nedbatchelder.com/blog/200605/dunder.html)と呼ばれることがあります。 –

+0

2.モジュール '__builtins__'は常に存在します。 –

答えて

1

あなたが興味を持っている任意の特定のタイプにDIR()を呼び出しjsut

for k in dir(__builtins__): 
    print str(k) + " : :\n" + str(dir(eval(k))) + "\n\n" 
    try: 
     a = input("type enter for next:") 
    except(SyntaxError): 
     continue 
あなたがプログラムのexcecuteionを終了するにはCtrl + Cを使用することができます

そしてもちろんを見つけるには、dir()を使用することができます。

+0

print(int .__ gt __(2,10)) - > False print(int .__ gt(20,10)) - > True。あなたの答えを使って、2> 10のように使う__gt__メソッドを見つけました。ありがとう。実際、多くのクラスでは、__add__、__gt__などの独自のメソッドの実装が使用されています。しかし、数値については、正しいクラスが「int」であると推測できます。 –

+0

@onurこのコメントは、kpieの回答にどのようにリモートで関連していますか? – lejlot

+0

使用しているPythonのバージョンは? – kpie

関連する問題