類和實(shí)例
類是對象的定義,里面包含了對象的各種信息,定義了一系列的方法
#定義類,object是所有類的母類,定義的類繼承object
class opp(object):
def __init__(self,name,age):
self.name=name
self.age=age
#定義方法
def show():
print("hello world")
#實(shí)例化
#創(chuàng)建類
a=opp("xiaoming",12)
b=opp("xiaohua",13)
#調(diào)用屬性
print(a.name)
print(b.age)
#調(diào)用方法
a.show()
類屬性
C.__name__ 類的名字
C.__doc__ 類的文檔字符串
C.__dict__ 類的屬性
C.__module__ 類所在的模塊
繼承(子類)
子類可以繼承父類所擁有的方法,通俗一點(diǎn),就是富二代啥也不干就有了老爸留下了的遺產(chǎn),子類擁有父類所有的功能。
創(chuàng)建子類
#繼承父類opp
class Children(opp):
#重寫構(gòu)造函數(shù)
def __init__(self,name,age,id):
self.name=name
self.age=age
self.id=id
#重寫父類方法
def show():
print ("hello,child")
#定義子類方法
def love(self,nm):
print("I love you")
self.lvname=nm
print("I love %s",self.lvname)
封裝
封裝可以隱藏內(nèi)部的邏輯,對象通過調(diào)用方法,不用管內(nèi)部是如何實(shí)現(xiàn)的
class Student(object):
def __init__(self,name,age,score):
self.name=name
self.age=age
self.score=score
#封裝一個打印學(xué)生成績的方法
def print_score(self):
print("%s:%s",self.name,self.score)
#實(shí)例一個對象
s=Student("xiaohua",12,90)
s.print_score()
私有屬性
上面的例子中,name,age等都是對象的屬性,但是通常為了使得代碼更加健壯,不想外部對內(nèi)部的屬性進(jìn)行訪問和修改,因此,就有了私有屬性
class Student(object):
def __init__(self,name,age,score):
#定義私有屬性
self.__name=name
self.__age=age
self.__score=score
上述例子中,如果想要訪問私有屬性,就會報錯受到訪問限制。