python中的類
阿新 • • 發佈:2020-07-19
類(Class): 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。
方法:類中定義的函式。
例項化:建立一個類的例項,類的具體物件。
物件:通過類定義的資料結構例項。
1.定義一個類
例:
注意:不能出現漢字和註釋,否則不能儲存程式,也不能執行(不知道為什麼)
class Person(object):#object 是python中的基類,所有自定義的類都是基於object,可寫可不寫 name='張三' # name 就是Person類的屬性 在函式中叫做變數 print(Person.name) #輸出類屬性值Person.name="李四" #可以修改屬性值 print(Person.name)
所以,上面的程式語句修改為:
1 class Person(object): 2 name='zhangsan' 3 print(Person.name) 4 Person.name="lisi" 5 print(Person.name)
輸出結果:
>>>
==================== RESTART: C:/Users/lenovo/Desktop/aaa.py ===================
zhangsan
lisi
>>>
說明:
1 class Person(object): #定義一個類,object 是python中的基類,所有自定義的類都是基於object,可寫可不寫
2 name='zhangsan' # name 就是Person類的屬性 在函式中叫做變數
3 print(Person.name) #輸出類屬性值
4 Person.name="lisi" #可以修改屬性值
5 print(Person.name) #輸出類屬性值
2.類的例項化
定義類之後,為了進行操作方便還要進行例項化。
例如Person這個類是抽象的,男人、女人、老人、小孩統稱為Person,是抽象的。
實際操作中往往是對具體物件的特點的操作,所以要進行類的例項化,簡而言之,類的例項化就是從抽象的類到具體的物件。
1 class Person(object): 2 name='zhangsan' 3 Gender="male" 4 print(Person.name,Person.Gender) 5 Person.name="Alice" 6 Person.Gender='female' 7 print(Person.name,Person.Gender) 8 xiaofang=Person() 9 print("xiaofang's English Name is:",xiaofang.name) 10 print("xiaofang's Gender is:",xiaofang.Gender)
輸出結果如下:
>>> ==================== RESTART: C:/Users/lenovo/Desktop/aaa.py =================== zhangsan male Alice female xiaofang's English Name is: Alice xiaofang's Gender is: female
注意:程式中不能出現中文和註釋
學會了幾個單詞:
gender 性別
male 男性
female 女性
3.類的屬性與例項屬性之間的關係 :
類的屬性例項均有,例項可以呼叫類屬性,但是類不可以呼叫例項屬性
類屬性,類可以訪問到,例項也可以訪問到
例項屬性類不可以訪問到,但是得例項可以訪問到
例:
1 class Person(object): 2 name='zhangsan' 3 Gender="male" 4 print(Person.name,Person.Gender) 5 Person.name="Alice" 6 Person.Gender='female' 7 print(Person.name,Person.Gender) 8 xiaofang=Person() 9 print("xiaofang's English Name is:",xiaofang.name) 10 print("xiaofang's Gender is:",xiaofang.Gender) 11 xiaofang.age="16" 12 print(xiaofang.age) 13 print(person.age)
輸出結果如下:
>>> ==================== RESTART: C:/Users/lenovo/Desktop/aaa.py =================== zhangsan male Alice female xiaofang's English Name is: Alice xiaofang's Gender is: female 16 Traceback (most recent call last): File "C:/Users/lenovo/Desktop/aaa.py", line 13, in <module> print(person.age) NameError: name 'person' is not defined
可以為例項xiaofang新增屬性
11 xiaofang.age="16"
可以訪問例項的屬性
12 print(xiaofang.age)
但是類不可以訪問到例項的屬性
13 print(person.age)
會報錯如下:
Traceback (most recent call last):
File "C:/Users/lenovo/Desktop/aaa.py", line 13, in <module>
print(person.age)
NameError: name 'person' is not defined
我的理解是:上級的屬性,下級可以訪問,但是下級的屬性,上級不能訪問,當然自己可以訪問自己的屬性。