對象是特徵與技能的結合體,我可能有身高體重、而你也有身高體重,因此你會說你像我,可是你必定不會說你像阿貓阿狗。而且我和你其實就能夠說成是一類,而你和選課系統不能說是一類,所以給出類的定義:類就是一系列對象類似的特徵與技能的結合體。函數
在現實世界中:先有一個個具體存在的對象,而後隨着人類文明的發展才了分類的概念,既然現實世界中有類這個概念,Python程序中也必定有類這個概念,可是在Python程序中:必須先定義類,而後調用類來產生對象。ui
就拿將來咱們的選課系統來說,咱們先總結一套現實世界中的學生對象:code
站在將來選課系統的角度,咱們還能夠總結現實世界中的學生類:對象
# 注意類中定義變量使用駝峯體 class OldboyStudent(): school = 'oldboy' def choose_course(self): print('is choosing course')
print(OldboyStudent.__dict__)
{'__module__': '__main__', 'school': 'oldboy', 'choose_course': <function OldboyStudent.choose_course at 0x10d653ae8>, '__dict__': <attribute '__dict__' of 'OldboyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'OldboyStudent' objects>, '__doc__': None}
print(OldboyStudent.__dict__['school'])
oldboy
print(OldboyStudent.__dict__['choose_course'])
<function OldboyStudent.choose_course at 0x10d653ae8>
try: OldboyStudent.__dict__['choose_course']() except Exception as e: print('error:', e)
error: choose_course() missing 1 required positional argument: 'self'
print(OldboyStudent.school)
oldboy
OldboyStudent.choose_course(111)
is choosing course
print(OldboyStudent.choose_course)
<function OldboyStudent.choose_course at 0x10d653ae8>
OldboyStudent.__dict__['choose_course']
<function __main__.OldboyStudent.choose_course(self)>
OldboyStudent.country='China'
OldboyStudent.__dict__['country']
'China'
OldboyStudent.country='CHINA'
OldboyStudent.__dict__['country']
'CHINA'
del OldboyStudent.school
print(OldboyStudent.__dict__)
{'__module__': '__main__', 'school': 'oldboy', 'choose_course': <function OldboyStudent.choose_course at 0x10d653ae8>, '__dict__': <attribute '__dict__' of 'OldboyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'OldboyStudent' objects>, '__doc__': None, 'country': 'CHINA'}
stu1=OldboyStudent() # 調用類會獲得一個返回值,該返回值就是類的一個具體存在的對象/實例 print(stu1.school)
oldboy
stu2=OldboyStudent() # 調用類會獲得一個返回值,該返回值就是類的一個具體存在的對象/實例 print(stu2.school)
oldboy
stu3=OldboyStudent() # 調用類會獲得一個返回值,該返回值就是類的一個具體存在的對象/實例 stu3.choose_course()
is choosing course