2016-05-24 1 views
-2

自己理解が難しいです。また、クラス 'anotherClass'には、2つの自己があります。 2つの自己は何を示していますか?Pythonの自己は何ですか? 2番目のクラスが別のクラスとそのメソッドを継承している場合、「自己」は何を表していますか?

class myClass(): 
    def method1(self): 
     print("myClass method1") 

class anotherClass(myClass): 
    def method1(self): 
     myClass.method1(self) 
     print("anotherClass method1") 

def main(): 
    c = anotherClass() 
    c.method1() 

if __name__ == "__main__": 
    main() 
+1

http://learnpythonthehardway.org/book/ex44.html - 私は、クラスについて初めて学んだときにこのページをかなり参考にしました –

+0

他のOO言語に精通していますか?事実上、そのようなすべての言語には 'this'オブジェクトがあります。これはオブジェクトメソッド内に魔法のように存在し、現在のオブジェクトを参照します。 Pythonは単にこの参照を、魔法のように存在するのではなく、パラメータとして明示的に渡します。 – deceze

答えて

2

selfは、そのメソッドが呼び出されるインスタンスです。あなたは

c.method1() 

を書く場合

だからその後cは、その最初のパラメータとしてmethod1に渡されます。

あなたが

myClass.method1(self) 

を行うとあなたは全くのインスタンスのメソッドを呼び出しますが、クラスの機能はありません。自己は自動的には設定されませんが、手で渡すので、そのままcとなります。

関連する問題