python self什么意思

(*-*)浩
Freigeben: 2020-09-18 13:48:00
Original
37235 Leute haben es durchsucht

self的意思是“自身”,python中代表类的实例,而非类。self只有在类的方法中才会有,独立的函数或方法是不必带有self的;self在定义类的方法时是必须有的。self名称不是必须的,你可以定义成a或b或其它名字都可以,但是约定成俗,可减少理解难度。

python self什么意思

首先我们要搞明白Python的类中为要什么要用到self这个单词呢,为什么不用"zhangsan"、"lisi"这样的名字呢,这肯定有他的用意。

self代表类的实例,而非类。

class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt()
Nach dem Login kopieren

执行结果如下:

<__main__.Test object at 0x000000000284E080> 
Nach dem Login kopieren

从上面的例子中可以很明显的看出,self代表的是类的实例。而self.class则指向类。

类中的方法第一个参数必须是 self ,不然实例无法正确调用类中的方法,也就是说,如果方法中第一个参数不是 self(广义的),那么这个方法是没有任何价值的,因为实例无法调用它,一个无法被调用的方法真不知道有什么用。

注意:把self换成this,结果也一样,但Python中最好用约定俗成的self。

在继承时,传入的是哪个实例,就是那个传入的实例,而不是指定义了self的类的实例。

class Parent: def pprt(self): print(self) class Child(Parent): def cprt(self): print(self) c = Child() c.cprt() c.pprt() p = Parent() p.pprt()
Nach dem Login kopieren

运行结果如下:

<__main__.Child object at 0x0000000002A47080> <__main__.Child object at 0x0000000002A47080> <__main__.Parent object at 0x0000000002A47240>
Nach dem Login kopieren

解释:

运行c.cprt()时应该没有理解问题,指的是Child类的实例。

但是在运行c.pprt()时,等同于Child.pprt(c),所以self指的依然是Child类的实例,由于self中没有定义pprt()方法,所以沿着继承树往上找,发现在父类Parent中定义了pprt()方法,所以就会成功调用

Das obige ist der detaillierte Inhalt vonpython self什么意思. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!