Python问题采样
代码执行顺序
1 | class Screen(object): |
输出结果:
1 | 1 20 |
问题:
__init__
是最后执行的?- 1处的
_width
是否为属性?因为6是在1后执行的。 - 如果1处的不是属性的话,如果在2处不写
self._width
,写_width
错误原因是什么?
问题1解答:
修改代码如下:
1 | class Screen(object): |
控制台:
1 | 1 20 |
class MyObject(object):
是先执行MyObject?还是等到用的时候执行MyObject呢?
答案是初始化MyObject, 但不执行init方法, 也就是说等到用到的时候再执行初始化操作。
所以看到打印出了1,4,没看到2 和 3.
2,3解答:
1 | class Screen(object): |
输出:
1 | 1 20 |
所以说在1处使用的_width
和_height
已经成为属性了,所以解释了3处为什么需要使用self._width
。