1. 程式人生 > >Python內建函式類方法靜態方法例項化方法學習

Python內建函式類方法靜態方法例項化方法學習

靜態方法

class C(object):
    @staticmethod
    def f():
        print('runoob');
 
C.f();          # 靜態方法無需例項化
cobj = C()
cobj.f()        # 也可以例項化後呼叫

類方法,例項化方法

class A(object):

    # 屬性預設為類屬性(可以給直接被類本身呼叫)
    num = "類屬性"

    # 例項化方法(必須例項化類之後才能被呼叫)
    def func1(self): # self : 表示例項化類後的地址id
        print("func1")
        print(self)

    # 類方法(不需要例項化類就可以被類本身呼叫)
    @classmethod
    def func2(cls):  # cls : 表示沒用被例項化的類本身
        print("func2")
        print(cls)
        print(cls.num)
        cls().func1()

    # 不傳遞預設self引數的方法(該方法也是可以直接被類呼叫的,但是這樣做不標準)
    def func3():
        print("func3")
        print(A.num) # 屬性是可以直接用類本身呼叫的

A.func1() 這樣呼叫是會報錯:因為func1()呼叫時需要預設傳遞例項化類後的地址id引數,如果不例項化類是無法呼叫的
A.func2()不需要例項化類就可以被類本身呼叫
A.func3()