python中的類方法、靜態方法、對象方法

來源:互聯網
上載者:User

標籤:color   初始   理解   col   object   並且   required   error   mis   

註:以下都是以公有為前提,私人方法只能在類內部調用,不需多講。

1、對象方法

這種方法都有一個預設參數:self  這代表執行個體的這個對象

    def __init__(self):        print("初始化對象")

類是不能直接調用對象方法:

class User(object):    name = ‘zs‘    def __init__(self):        print("初始化對象")User.__init__()

這樣調用拋出一個錯誤:TypeError: __init__() missing 1 required positional argument: ‘self‘

2、類方法

類方法顧名思義,類的方法,可以直接用類名進行調用;也可以通過類執行個體化的對象進行調用

class User(object):    name = ‘zs‘    __pass = 1223    def __init__(self):        print("初始化對象")    @classmethod #修飾器    def changeName1(cls):        cls.name = ‘ls‘        print("類的方法%s"%(cls.__pass))

changeName1就是類方法,前面需要註明修飾器:@classmethod  ,並且有一個預設參數cls 也就是這個類本身。

3、靜態方法

其實靜態方法可以理解為一種特殊的類方法,它跟普通類方法就兩點區別:

(1)修飾器不一樣

(2)沒有預設參數

其餘的跟類方法一模一樣

class User(object):    name = ‘zs‘    __pass = 1223    def __init__(self):        print("初始化對象")    @classmethod #修飾器    def changeName1(cls):        cls.name = ‘ls‘        print("類的方法%s"%(cls.__pass))    @staticmethod    def changeName2():        User.name = ‘ww‘        print("靜態方法")u = User()u.changeName1()User.changeName1()u.changeName2()User.changeName2()

總結:一個類執行個體化的對象可以調用類裡面所有的公用方法,類只能調用類方法和靜態方法(如果是私人方法,只能再類內部調用。)

python中的類方法、靜態方法、對象方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.