Python Class 初始化顺序

下面会输出什么呢:

print('A')
class MyObject(object):
    print('B')
    def __init__(self, name):
        print('C')
        self.name = name
        print('D')
print('E')
my_object1 = MyObject('Hello')

 

。。。

 

A
B
E
C
D

 

A: 毋庸置疑,第一行

B: 

class MyObject(object):

  是先执行MyObject?还是等到用的时候执行MyObject呢?

  答案是初始化MyObject, 但不执行__init__方法, 也就是说等到用到的时候再执行初始化操作。

      所以看到打印出了B,没看到C 和 D.

E:  处理完MyObject class, 打印E

C:  

my_object1 = MyObject('Hello')

  实例化MyObject, 这个时候执行__init__, 将实例my_object1的name属性赋值为‘Hello’。

D:

执行完__init__方法,返回。

 

Python tutuor

posted @ 2017-05-20 15:23  Haichao_cn_blog  阅读(3057)  评论(0编辑  收藏  举报