1
zhuangzhuang1988 2017-01-17 17:19:52 +08:00
|
2
ryd994 2017-01-17 17:42:53 +08:00 via Android
难道不是先尝试自己的方法列表,找不到就直接找到父类然后由父类处理么?
|
3
noobsheldon OP @ryd994 假设有一父类 A:
class A(object) : def prt(self) : print type(self) 还有一子类 B ,继承 A class B(A) :pass B().prt ()输出说明此时 self 代表 B 类实例。继承过程是怎样使得 prt 的 self 指向 B 实例的? |
4
noobsheldon OP @zhuangzhuang1988 多谢
|
5
wwqgtxx 2017-01-17 21:24:27 +08:00 via iPhone
|
6
noobsheldon OP @wwqgtxx B. __duct__中并没有 A.__dict__的内容
|
7
wwqgtxx 2017-01-17 22:21:38 +08:00 via iPhone
@noobsheldon 他在他的内部执行就行了,不一定要表现出来呀
|
8
wwqgtxx 2017-01-17 22:30:41 +08:00 via iPhone
而且你上面说到的
继承过程是怎样使得 prt 的 self 指向 B 实例的 self 本身就是一种指针, python 解析器实际上是调用 A.prt(self)的,所以这种实现是自然而然的 |
9
glogo 2017-01-17 23:09:59 +08:00
直接翻开 Python 源码看吧
|
10
ryd994 2017-01-18 02:43:23 +08:00 via Android
@noobsheldon 你只看到 self 不代表解释器只看到 self
解释器内部变量多一个而已 更何况 self 其实是解释器在运行时给赋值的一个参数,把 self 全部换成 foo bar 一样能用 |
11
deleted 2017-01-18 08:55:10 +08:00 via Android
Cython 不是 cpython 吧
|
12
noobsheldon OP @deleted 这只是叫法问题啊!也有叫 Cpython 的啊
|
13
noobsheldon OP @ryd994 不是这个意思,我知道随便换个名字都能用!
|