類 就是一類東西的總稱,創建一個類,然後在類裏面創建對象,這些對象就會自動具有該類的所有屬性
class Dog(): #創建類 給出類名Dog——根據約定,在Python中,首字母大寫的名稱指的是類。
def __init__(self, name, age): #注意前後各有兩個下劃線,代表這是默認的方法,在該類下創建任何對象時,都將自動運行該方法。
"""初始化屬性name和age"""
"""第一個參數self由程序自動給出,不需要賦值,
它代表的是我們創建的對象,作爲self參數,代進類定義裏的所有函數之中,從擁有該類所有屬性
因此,類定義裏的每一個函數,都有一個self參數,而且必須放在第一位"""
self.name = name
self.age = age #由於初始化方法自動運行,每一個小狗對象都將有一個名字和年齡
def sit(self):
"""模擬小狗被命令時蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模擬小狗被命令時打滾"""
print(self.name.title() + " rolled over!")
mydog=dog('harry',6) #類的實例化——創建一個實例
#在創建實例時,必須要給出__init__方法所需的所有參數,否則報錯
print(mydog.name) #>>>harry 該實例擁有了name屬性,可以訪問
類的繼承——將一個類的屬性賦給另一個類(而不是給它的實例們),被繼承的類是父類,繼承的類是子類
#定義父類
class Man():
def __init__(self,sex,age):
self.sex=sex
self.age=age
#定義子類
class Chinese(Man): #注意:定義子類與父類的區別就是括號裏要給出父類名稱
def __init__(self,sex,age,nation):
super().__init__(self,sex,age) #super就是父類的意思
self.nation=nation
zhangsan=Chinese('F',28,'China')
print(zhangsan.sex) >>>'F' #引用父類的屬性,方法也可以引用,在此不予列出
print(zhangsan.age) >>>28
print(zhangsan.nation) >>>'China'
#在子類的定義裏如果有跟父類定義裏方法名一樣的方法,相當於修改了繼承而來的方法,以後的調用將以子類定義內的方法爲準
類的嵌套:
通過將一個類的屬性,定義爲另一個類,可以實現嵌套
self.attr = anotherclass()
類的模塊化:將定義好的類存爲一個單獨的.py文件,使其變成一個獨立的模塊
模塊導入: from module_name import class_name1, class_name2
TIPS:
- 命名原則:類名應採用駝峯命名法,即將類名中的每個單詞的首字母都大寫,而不使用下劃線。實例名和模塊名都採用小寫格式,並在單詞之間加上下劃線。
- 註釋:定義類後給出註釋,簡要描述其功能