本文實例講述了Python編程中屬性和方法使用技巧。分享給大家供大家參考。具體分析如下:
一、屬性
在python中,屬性分為公有屬性和私有屬性,公有屬性可以在類的外部調(diào)用,私有屬性不能在類的外部調(diào)用。公有屬性可以是任意變量,私有屬性是以雙下劃線開頭的變量。
下面我們定義一個People類,它有一個公有屬性name,和一個私有屬性__age。
class People():def __init(self):self.name='張珊'self.__age=24
我們創(chuàng)建一個People類的實例,P1,當(dāng)我們調(diào)用它的私有屬性__age時發(fā)現(xiàn)有如下錯誤。
>>> p1.__age
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
p1.__age
AttributeError: 'People' object has no attribute '__age'
這就說明了私有屬性不可以在類的外部使用。那么我們要想調(diào)用私有屬性的值,就可以在類的內(nèi)部通過定義一個方法來調(diào)用。
>>> class People():def __init__(self): self.name='jack' self.__age=23def showinfo(self): print(self.__age)>>> p2=People()>>> p2.showinfo()23
可能有人會問,為什么加上雙下劃線的屬性,我們就不可以在類的外部調(diào)用了呢?那么下面我們就探討下python面向?qū)ο蟮乃接袡C制。
Python中以雙下劃線開頭的屬性和方法,在被實例化后會自動在其名字前加_classname.因為名字被改變了,所以自然無法通過雙下滑線開頭的名字來訪問,從而達到不可進入的目的。
我們可以通過實例名.__dict__來查看對象的屬性集合。
Python中不同于其他面向?qū)ο蟮木幊陶Z言,python的設(shè)計哲學(xué)就是簡單至上,因此如果你真的想要調(diào)用私有屬性的話還是可以調(diào)用的。
二、方法
在python中方法分為公有方法、私有方法、類方法和靜態(tài)方法。
下面我們看一個比較完整的例子
#!/usr/bin/python#coding:utf-8__author__ = 'MXi4oyu'class People(): def __init__(self): self.name='張珊' self.__age=23 def fun1(self): #共有方法可以在類的外部進行調(diào)用 #可以通過對象名.方法名來調(diào)用 print("共有方法") def __fun2(self): #私有方法不能在類的外部進行調(diào)用 #可以在類的其他方法中調(diào)用私有方法 print("私有方法") def funcshow(self): self.__fun2() @classmethod #類方法要加上@classmethod修飾器,類方法可以通過類名.方法名進行調(diào)用 def fun3(self): print("類方法") @staticmethod #靜態(tài)方法需要加上@staticmethod修飾器,靜態(tài)方法不需要加self, #同樣可以通過類名.方法名調(diào)用 def fun4(): print("靜態(tài)方法")if __name__=='__main__': p1=People() p1.fun1() p1.funcshow() People.fun3() People.fun4()
新聞熱點
疑難解答
圖片精選