亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

DDreach / 3435人閱讀

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


一、知識(shí)點(diǎn)^_^

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

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

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

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

二、舉例說明

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

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

上代碼:

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


? thanks for watching, keep on updating...
點(diǎn)個(gè)贊再走吧

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/44794.html

相關(guān)文章

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

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

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

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

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

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

    89542767 評(píng)論0 收藏0
  • python

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

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

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

    weknow619 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<