Python教程:self用法

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球