社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

我如何知道python引擎是如何工作的?

Kalyan Kumar • 5 年前 • 2082 次点击  

我如何知道核心python将如何工作。

例如,见以下代码:

class A(object):
    def a(self):
        print 111111
    def b(self):
        self.a()

class B(A):
    def a(self):
        print 222222

当我这样做的时候

a = B()
a.b()

它正在打印

222222

如果你说“self”是类B的对象,所以它调用自己的方法,但在定义“self”是类B的对象的地方,它为什么不打印“11111”?

在哪里可以看到从类B调用“a”方法的内部逻辑?

每次我遇到这个逻辑,我都会忘记并假设它会打印“111111”,那么有什么方法可以检查内部的python行为吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52267
 
2082 次点击  
文章 [ 1 ]  |  最新文章 5 年前
chepner
Reply   •   1 楼
chepner    5 年前

你是在假设 self.a A.a 只是因为它发生在 A.b . 那不是真的;行为 自我。a 是由 运行时 类型 self .

自从 a B , a.b() type(a).b(a, b) B.b(a, b) . 自从 B.b 未定义,属性查找过程返回到 A、 乙 . 内部 A、 乙 , self == a ,所以我们现在有了 a.a() ,这同样相当于 type(a).a(a) == B.a(a) . 因此, A、 一个 从来没人打过电话。