1. 程式人生 > 實用技巧 >python中的類

python中的類

類(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

我的理解是:上級的屬性,下級可以訪問,但是下級的屬性,上級不能訪問,當然自己可以訪問自己的屬性。