class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
TypeError: prt() takes 0 positional arguments but 1 was given
当然,我们可以定义和调用时均不传类的实例,这就是类方法。
class Test:
def prt():
print(__class__)
Test.prt()
<__main__.Child object at 0x0000023460235C48>
<__main__.Child object at 0x0000023460235C48>
<__main__.Parent object at 0x0000023460235C88>
运行 c.cprt() 时,指的是 Child 类的实例。
但是在运行 c.pprt()时,等同于 Child.pprt©,所以 self 指的依然是 Child 类的实例,由于 self 中没有定义 pprt() 方法,所以沿着继承树往上找,发现父类 Parent 中定义了 pprt() 方法,所以就会调用。
`python
”’
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
”’
class Desc:
def get(self, ins, cls):
print(‘self in Desc: %s’ % self)
print(self, ins, cls)
class Test:
x = Desc()
def prt(self):
print(‘self in Test: %s’ % self)
t = Test()
t.prt()
t.x
Original: https://blog.csdn.net/qdPython/article/details/125873246
Author: Python热爱者
Title: Python教程:self用法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/757211/
转载文章受原作者版权保护。转载请注明原作者出处!