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

首頁 > 編程 > Python > 正文

python中的實例方法、靜態(tài)方法、類方法、類變量和實例變量淺析

2020-02-23 05:21:28
字體:
來源:轉載
供稿:網友

注:使用的是Python2.7。

一、實例方法

實例方法就是類的實例能夠使用的方法。如下:
代碼如下:
class Foo:
    def __init__(self, name):
        self.name = name
    def hi(self):
        print self.name

if __name__ == '__main__':
    foo01 = Foo('letian')
    foo01.hi()
    print type(Foo)
    print type(foo01)
    print id(foo01)
    print id(Foo)
運行結果為:
代碼如下:
letian
<type 'classobj'>
<type 'instance'>
40124704
31323448[code]
可以看到,F(xiàn)oo的type為classobj(類對象,python中定義的類本身也是對象),foo01的type為instance(實例)。而hi()是實例方法,所以foo01.hi()會輸出'letian'。實例方法的第一個參數(shù)默認為self,代指實例。self不是一個關鍵字,而是約定的寫法。init()是生成實例時默認調用的實例方法。將Foo的定義改為以下形式:
[code]class Foo:
    def __init__(this, name):
        this.name = name
    def hi(here):
        print here.name
運行依然正確。 內置函數(shù)id用來查看對象的標識符,下面是其doc內容:
代碼如下:
>>> print id.__doc__
id(object) -> integer

Return the identity of an object.  This is guaranteed to be unique among
simultaneously existing objects.  (Hint: it's the object's memory address.)

二、靜態(tài)方法

靜態(tài)方法是一種普通函數(shù),就位于類定義的命名空間中,它不會對任何實例類型進行操作。使用裝飾器@staticmethod定義靜態(tài)方法。類對象和實例都可以調用靜態(tài)方法:
代碼如下:
class Foo:
    def __init__(self, name):
        self.name = name
    def hi(self):
        print self.name
    @staticmethod
    def add(a, b):
        print a + b

if __name__ == '__main__':
    foo01 = Foo('letian')
    foo01.hi()
    foo01.add(1,2)
    Foo.add(1, 2)


    運行結果如下:
代碼如下:
letian
3
3
注意,很多編程語言不允許實例調用靜態(tài)方法。

三、類方法

類方法是將類本身作為對象進行操作的方法。類方法使用@classmethod裝飾器定義,其第一個參數(shù)是類,約定寫為cls。類對象和實例都可以調用類方法:
代碼如下:
class Foo:
    name = 'letian '
    @classmethod
    def hi(cls, x):

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五河县| 北海市| 合江县| 稷山县| 棋牌| 普宁市| 长岛县| 长岭县| 娄底市| 修水县| 高陵县| 左贡县| 六盘水市| 大厂| 南投市| 潞西市| 沙洋县| 东辽县| 昆明市| 新疆| 铁岭县| 乌什县| 桃源县| 阿克| 神池县| 白山市| 梨树县| 新闻| 文安县| 海林市| 青浦区| 昔阳县| 东台市| 大安市| 府谷县| 荣成市| 阳曲县| 七台河市| 桂阳县| 汕尾市| 合川市|