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


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

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()

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM