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

首頁 > 編程 > Python > 正文

Python編程之屬性和方法實例詳解

2019-11-25 17:26:34
字體:
供稿:網(wǎng)友

本文實例講述了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(jī)制。

Python中以雙下劃線開頭的屬性和方法,在被實例化后會自動在其名字前加_classname.因為名字被改變了,所以自然無法通過雙下滑線開頭的名字來訪問,從而達(dá)到不可進(jìn)入的目的。

我們可以通過實例名.__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):    #共有方法可以在類的外部進(jìn)行調(diào)用    #可以通過對象名.方法名來調(diào)用    print("共有方法")  def __fun2(self):    #私有方法不能在類的外部進(jìn)行調(diào)用    #可以在類的其他方法中調(diào)用私有方法    print("私有方法")  def funcshow(self):    self.__fun2()  @classmethod  #類方法要加上@classmethod修飾器,類方法可以通過類名.方法名進(jìn)行調(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()

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广州市| 新龙县| 英吉沙县| 交口县| 正定县| 康保县| 浦东新区| 陈巴尔虎旗| 东海县| 涡阳县| 句容市| 金湖县| 清水县| 宜良县| 临沭县| 阜南县| 张家川| 望奎县| 新干县| 宾阳县| 鹤庆县| 福州市| 姜堰市| 万全县| 铁岭县| 大石桥市| 达拉特旗| 普兰店市| 苍南县| 林甸县| 碌曲县| 临高县| 兴化市| 江门市| 贺兰县| 铜山县| 滨州市| 栖霞市| 栖霞市| 东乡族自治县| 永清县|