成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python的 函數(shù)、類方法、實例方法、靜態(tài)方法

DDreach / 3379人閱讀

摘要:類方法也叫類型方法,在該方法上一行,用進(jìn)行標(biāo)記。實例方法沒有和標(biāo)記的方法是實例方法。第一個參數(shù)強(qiáng)制為,類實例對象。首先該方法是類內(nèi)部定義的函數(shù),是類方法屬性。上代碼一般方法實例方法類方法靜態(tài)方法一般方法此方法的工作跟類實例均無關(guān)系。


一、知識點^_^

函數(shù):我一般習(xí)慣把跟類無關(guān)叫成函數(shù),而類里面實現(xiàn)的叫方法。

類方法:也叫類型方法,在該方法上一行,用@classmethod進(jìn)行標(biāo)記。
第一個參數(shù)強(qiáng)制為cls,類對象??梢酝ㄟ^這個類對象訪問類屬性,由于沒有傳入類實例對象,所以不能訪問類實例屬性。

靜態(tài)方法:用@staticmethod標(biāo)記的方法。無內(nèi)定的參數(shù),類和實例都可以調(diào)用,方法有多少參數(shù)就必須傳遞多少參數(shù)。

實例方法:沒有@classmethod@staticmethod標(biāo)記的方法是實例方法。
第一個參數(shù)強(qiáng)制為self,類實例對象??梢酝ㄟ^這個類實例對象訪問類屬性,可以通過類實例對象的__class__屬性訪問類屬性。
假設(shè)該方法有n個參數(shù),類型調(diào)用的時候需要給n個參數(shù)傳參。而實例調(diào)用時則只能傳n-1個參數(shù),因為第一個參數(shù)被系統(tǒng)默認(rèn)傳遞了實例本身。

二、舉例說明

先來了解一下綁定的概念。

綁定binding:它與方法調(diào)用相關(guān)聯(lián)。
首先該方法是類內(nèi)部定義的函數(shù),是類方法屬性。
類方法中,第一個參數(shù)都是self,表示調(diào)用此方法的實例對象,不需要賦值。
且該方法只有在其所屬類擁有實例對象時,才能被調(diào)用,即方法綁定到類實例對象上了。
沒有類實例對象時,方法就是未綁定狀態(tài)。

上代碼:

def foo(x):                # 一般方法
    print "executing foo(%s)"%(x)
    
class A(object):           
    def foo(self,x):    # 實例方法
        print "executing foo(%s,%s)"%(self,x)
        
    @classmethod        # 類方法          
    def class_foo(cls,x):
        print "executing class_foo(%s,%s)"%(cls,x)

    @staticmethod        # 靜態(tài)方法
    def static_foo(x):
        print "executing static_foo(%s)"%x
a=A()

1、 一般方法
此方法的工作跟類、實例均無關(guān)系??梢灾苯诱{(diào)用foo(x)。
2、 實例方法
在類里定義實例方法時第一個參數(shù)永遠(yuǎn)是實例變量self(綁定類的實例),實例方法的調(diào)用離不開實例,調(diào)用:a.foo(x),其中a是A的實例。
3、 類方法 @classmethod
類方法定義時需要去綁定類(即通過cls)。調(diào)用的時候傳遞的是類,調(diào)用:A.class_foo(x),其中A是類。
4、 靜態(tài)方法@staticmethod
與普通方法一樣,不需要對類或?qū)嵗M(jìn)行綁定,but調(diào)用時需要通過類或?qū)嵗?,調(diào)用:a.static_foo(x)或A.static_foo(x)。


? thanks for watching, keep on updating...
點個贊再走吧

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44794.html

相關(guān)文章

  • Python中使用靜態(tài),或抽象方法權(quán)威指南

    摘要:在中,可以將和裝飾器放在上面和的接口相反,你可以在抽象方法中實現(xiàn)代碼并通過調(diào)用它在上面的例子中,繼承來創(chuàng)建的每個都必須重寫方法,但是可以使用來獲取出處 Python中方法的工作方式 方法是存儲在類屬性中的函數(shù),你可以用下面這種方式聲明和訪問一個函數(shù) >>> class Pizza(object): ... def __init__(self, size): .....

    cheukyin 評論0 收藏0
  • [轉(zhuǎn)載]Python方法綁定——Unbound/Bound method object一些梳理

    摘要:本篇主要總結(jié)中綁定方法對象和未綁定方法對象的區(qū)別和聯(lián)系。在中使用描述器有翻譯的鏈接來表示具有綁定行為的對象屬性,使用描述器協(xié)議方法來控制對具有綁定行為屬性的訪問,這些描述器協(xié)議方法包括和。其中通過限定的必須使用實例才能調(diào)用。 本篇主要總結(jié)Python中綁定方法對象(Bound method object)和未綁定方法對象(Unboud method object)的區(qū)別和聯(lián)系。主要目的...

    yankeys 評論0 收藏0
  • Python方法靜態(tài)方法之間區(qū)別

      小編寫這篇文章的主要目的,是講述一下關(guān)于Python的一些小技巧,包括類方法與靜態(tài)方法之間,存在一些什么區(qū)別呢?怎么從真正的意義上去理解關(guān)于其不同之間的區(qū)別呢?下面就給大家詳細(xì)的解答下?! ∏把浴 ≡趐ython的類中不僅可以有methods,還可以有變量,這些變量稱為類屬性,例如如下代碼中Book類的TYPES即為類屬性?! ☆愔械姆椒ǚ譃?類:  1.實例方法instance method...

    89542767 評論0 收藏0
  • python

    摘要:類方法,第一個參數(shù)必須要默認(rèn)傳類,一般習(xí)慣用。特別說明,靜態(tài)方法也可以實現(xiàn)上面功能,當(dāng)靜態(tài)方法每次都要寫上類的名字,不方便。 Python-類屬性,實例屬性,類方法,靜態(tài)方法,實例方法 類屬性和實例屬性 #coding:utf-8 class Student(object): name = I am a class variable #類變量 >>> s = Student(...

    leanote 評論0 收藏0
  • Python OOP 面向?qū)ο缶幊?/b>

    摘要:時代,如果需要手動繼承,如多態(tài)多態(tài)是指,不同的子類對象調(diào)用相同的父類方法,會產(chǎn)生多態(tài)多樣結(jié)果的編程特性。 參考:黑馬程序員教程 - Python基礎(chǔ) 面向?qū)ο?OOP三大特性,且三個特性是有順序的: 封裝 繼承 多態(tài) 封裝 指的就是把現(xiàn)實世界的事務(wù),封裝、抽象成編程里的對象,包括各種屬性和方法。這個一般都很簡單,不需要多講。 唯一要注意的就是:推薦從小往大開始封裝、開發(fā)類。比如手槍...

    weknow619 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<