12-06
一、類的屬性
1.類的組成由屬性和方法組成,屬性可以稱為成員變數,方法可以稱為成員函式。
2.物件的建立,建立物件的過程稱之為例項化。當一個物件被建立後,包含三個方面的特性:1.物件控制程式碼 2.屬性 3.方法。
控制程式碼:用於區分不同的物件。
物件的屬性和方法與類中的成員變數和成員函式對應。
在類裡面的屬性和方法叫做成員變數和成員函式,在例項化後,呼叫這些變數和函式,就叫做物件屬性和物件方法。
3.類的屬性,類的屬性按使用範微分為公有屬性和私有屬性,類的屬性範圍取決於屬性的名稱。
公有屬性:在類中和類外都能呼叫的屬性。
私有屬性:不能在類外以及類以外的函式呼叫。
私有屬性的定義方式:以__雙下劃線開始的成員變數就是私有屬性,可以通過instance.classname_attribute方式訪問。
內建屬性:由系統在定義類的傷害預設新增的,有前後雙下劃線構成,__dict__, __module__。
比如:
class People(object):
color = 'yellow' #這就是一個公有屬性,可以在類裡和類外呼叫
__age = 30 #這就是一個私有屬性,只能在類裡呼叫。
def think(self):
self.color = "black"
print "i am a %s" % self.color
print "i am a thinker"
print(self.__age) #呼叫age
ren = People()
print ren.color
ren.think()
print(ren.__age)
可以看到在類裡呼叫的__age成員變數可以呼叫出來,但是在類外就不行了。
如果想在外面看到的話可以這麼看。但是不一般不建議這麼做,在除錯的時候可以用。class People(object):
color = 'yellow'
__age = 30
def think(self):
self.color = 'black'
print(self.color)
ren = People()
print ren.color
ren.think()
print ren.__age
print ren._People__age #這就可以看到內部的屬性。還是建議放在成員函式裡使用。
使用內部屬性這麼做直接使用物件屬性的方式呼叫。
print ren.__dict__ 是屬性所以沒有括號。
把公有屬性分成字典的型別了。
我們不光可以使用物件來訪問類的屬性,還可以通過類來訪問類的屬性。但是隻能訪問公有屬性。
print people.color
4.物件屬性修改。
class People(object):
color = 'yellow'
__age = 30
def think(self):
self.color = 'black'
print(self.color)
ren = People()
ren.color = “白色人” #通過物件屬性修改color的值
print ren.color
ren.think()
print ren._People__age
可以發現,物件屬性的值得變了,但是在類中的的屬性的值沒有改變還是yellow。
通過類名去訪問內建屬性
print People.__dict__
可以發現列印出了類裡的所有屬性對應的值。
二、類的方法
1.類的方法的定義和定義函式一樣,但是需要self作為第一個引數,這個是必須要有的。self方法就是用來區分函式和類方法的。
類的方法分為:1.公有方法 2.私有方法 3.類方法 4.靜態方法
公有方法:在類中和類外都可以呼叫的方法。和公有屬性一樣
私有方法:不能被類外部呼叫,在方法前面加上__雙下劃線就是私有方法。和私有屬性一樣。
類方法:被classmethod()函式處理過的函式,能被類所呼叫,也能被物件所呼叫(是繼承的關係)
靜態方法:相當於“全域性函式”,可以被類直接呼叫,可以被所有例項化物件共享,通過staticmethod()定義,靜態方法沒有self引數。
---------------------
作者:shuaizy2017
來源:CSDN
原文:https://blog.csdn.net/shuaizy2017/article/details/79029301
版權宣告:本文為博主原創文章,轉載請附上博文連結!