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.