self代表类的实例,而非类。
class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt()
实行效果以下:
<__main__.Test object at 0x000000000284E080> <class '__main__.Test'>
从上面的例子中能够很明显的看出,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()
运转效果以下:
<__main__.Child object at 0x0000000002A47080> <__main__.Child object at 0x0000000002A47080> <__main__.Parent object at 0x0000000002A47240>
诠释:
运转c.cprt()时应当没有明白题目,指的是Child类的实例。
但是在运转c.pprt()时,等同于Child.pprt(c),所以self指的依然是Child类的实例,因为self中没有定义pprt()要领,所以沿着继续树往上找,发如今父类Parent中定义了pprt()要领,所以就会胜利挪用
以上就是python self什么意思的细致内容,更多请关注ki4网别的相干文章!