Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khái báo trong Python class có tương đương với trong __init__ method không?

Khai báo bất kỳ đâu trong class (ngoài __init__) và khai báo trong __init__ method không giống nhau. Code sau chứng minh điều này:

Ví dụ

import sys
class foo():
    print 'within class'
    def __init__(self):
        print 'within init'
    def do_smthng(self):
        print 'do something'
def main():
    f = foo()
    f.do_smthng()
    return 0
if __name__ == '__main__':
    sys.exit(main())

Output

within class
within init
do something

Dòng print 'within class' chạy ngay khi class definition được thực thi (import time), trong khi __init__ chạy khi instantiate object.