国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python編程之屬性和方法實(shí)例詳解

2020-01-04 19:14:52
字體:
供稿:網(wǎng)友

這篇文章主要介紹了Python編程之屬性和方法,以實(shí)例形式較為詳細(xì)的分析了Python中屬性與方法的功能、特點(diǎn)與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Python編程中屬性和方法使用技巧。分享給大家供大家參考。具體分析如下:

一、屬性

在python中,屬性分為公有屬性和私有屬性,公有屬性可以在類的外部調(diào)用,私有屬性不能在類的外部調(diào)用。公有屬性可以是任意變量,私有屬性是以雙下劃線開頭的變量。

下面我們定義一個People類,它有一個公有屬性name,和一個私有屬性__age。

 

 
  1. class People(): 
  2. def __init(self): 
  3. self.name='張珊' 
  4. self.__age=24 

我們創(chuàng)建一個People類的實(shí)例,P1,當(dāng)我們調(diào)用它的私有屬性__age時(shí)發(fā)現(xiàn)有如下錯誤。

>>> p1.__age

Traceback (most recent call last):

File "", line 1, in

p1.__age

AttributeError: 'People' object has no attribute '__age'

這就說明了私有屬性不可以在類的外部使用。那么我們要想調(diào)用私有屬性的值,就可以在類的內(nèi)部通過定義一個方法來調(diào)用。

 

 
  1. >>> class People(): 
  2. def __init__(self): 
  3. self.name='jack' 
  4. self.__age=23 
  5. def showinfo(self): 
  6. print(self.__age) 
  7. >>> p2=People() 
  8. >>> p2.showinfo() 
  9. 23 

可能有人會問,為什么加上雙下劃線的屬性,我們就不可以在類的外部調(diào)用了呢?那么下面我們就探討下python面向?qū)ο蟮乃接袡C(jī)制。

Python中以雙下劃線開頭的屬性和方法,在被實(shí)例化后會自動在其名字前加_classname.因?yàn)槊直桓淖兞?,所以自然無法通過雙下滑線開頭的名字來訪問,從而達(dá)到不可進(jìn)入的目的。

我們可以通過實(shí)例名.__dict__來查看對象的屬性集合。

Python中不同于其他面向?qū)ο蟮木幊陶Z言,python的設(shè)計(jì)哲學(xué)就是簡單至上,因此如果你真的想要調(diào)用私有屬性的話還是可以調(diào)用的。

二、方法

在python中方法分為公有方法、私有方法、類方法和靜態(tài)方法。

下面我們看一個比較完整的例子

 

 
  1. #!/usr/bin/python 
  2. #coding:utf-8 
  3. __author__ = 'MXi4oyu' 
  4. class People(): 
  5. def __init__(self): 
  6. self.name='張珊' 
  7. self.__age=23 
  8. def fun1(self): 
  9. #共有方法可以在類的外部進(jìn)行調(diào)用 
  10. #可以通過對象名.方法名來調(diào)用 
  11. print("共有方法"
  12. def __fun2(self): 
  13. #私有方法不能在類的外部進(jìn)行調(diào)用 
  14. #可以在類的其他方法中調(diào)用私有方法 
  15. print("私有方法"
  16. def funcshow(self): 
  17. self.__fun2() 
  18. @classmethod 
  19. #類方法要加上@classmethod修飾器,類方法可以通過類名.方法名進(jìn)行調(diào)用 
  20. def fun3(self): 
  21. print("類方法"
  22. @staticmethod 
  23. #靜態(tài)方法需要加上@staticmethod修飾器,靜態(tài)方法不需要加self, 
  24. #同樣可以通過類名.方法名調(diào)用 
  25. def fun4(): 
  26. print("靜態(tài)方法"
  27. if __name__=='__main__'
  28. p1=People() 
  29. p1.fun1() 
  30. p1.funcshow() 
  31. People.fun3() 
  32. People.fun4() 

希望本文所述對大家的Python程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东阿县| 中江县| 济源市| 曲沃县| 高台县| 祁门县| 于都县| 安乡县| 浑源县| 四会市| 台北市| 麻江县| 临沭县| 仙桃市| 华安县| 合山市| 广平县| 祁门县| 昔阳县| 平罗县| 庐江县| 富源县| 孟津县| 凭祥市| 盐源县| 道真| 察哈| 庆云县| 宝山区| 肥城市| 林周县| 宣武区| 铜陵市| 大港区| 基隆市| 渑池县| 邵阳市| 松原市| 阳信县| 衡南县| 西丰县|