#Python3 中類的封裝,構造方法的定義,實例化屬性,和共有屬性
#把具有相同特徵的一類東西抽象成一個類
#1,類的定義 關鍵字:Class
#類和方法的命名都是駝峯命名規則,但是類的首字母大寫,方法的首字母小寫
class Animal(object): #這裏定義了一個Animal類,繼承了object基類
pass
#注意,任何類都會繼承object基類,所以定義類的時候可以 object可寫可不寫
# 使用類的時候需要先實例化
an=Animal() #實例化類 現在an這個對象就得到了Animal的所有方法和屬性
#2,類中構造方法的學習
class Animal1(object): #這裏定義了一個Animal類,繼承了object基類
def __init__(self): #這是構造方法,構造方法中必須加參數self
print('對象只要被實例化,我就會被調用,可以把我理解成初始化方法')
a=Animal1() #實例化Animal1類,自動輸出構造方法
#實例化構造對象的時候必調用構造方法,構造方法的寫法 只能是 __init__
#如果聲名類的時候沒有定義構造方法,那就會默認調用父類的構造方法
# __init__(self) 中的self這個參數意思是實例化對象自己
'''
#實例化對象調用類中方法的時候一定會默認傳一個參數,這個默認參數就是把自己傳進去
#所以說只有在類中有(self)參數的方法,才能被實例調用,
#如果類中的方法沒有self參數,
#那麼這個方法只能被類調用,不能被類的實例化調用
'''
#屬性,實例化屬性,和類屬性
#類屬性又叫共有屬性
class Animal2(): #定義一個Animal2()類,雖然沒寫object 但是它默認繼承
def __init__(self,name): #定義構造方法
self.name=name #這個叫實例化屬性 在方法中定義的叫實例化屬性
def getName(self):
print(self.name) #問 爲什麼我getName中沒有定義name屬性,我可以輸出
#因爲,類在實例化的時候得到了自己的name屬性,我們把self對象穿進去就有了name屬性
#類屬性
class Animal3(): #定義一個Animal3()類
age=2 #這個age是共有屬性
def __init__(self,name): #定義構造方法
self.name=name #這個叫實例化屬性 在方法中定義的叫實例化屬性
def getName(self):
print(self.name)
'''
當共用屬性被實例化調用的時候,共用屬性會變成實例化屬性,切記
'''
Python 3.6 定義類中的方法和屬性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.