1. 程式人生 > >3.1.9 類內部定義的函數:綁定方法與非綁定方法

3.1.9 類內部定義的函數:綁定方法與非綁定方法

說明 第一個 ini 對象 assm 說了 In true @class

‘‘‘
在類內部定義的函數,分為兩大類:
一:綁定方法:綁定給誰,就應該由誰來調用,誰來調用就會把調用者當作第一個參數自動傳入
    1. 綁定到對象的方法:在類內定義的沒有被任何裝飾器修飾的

    2. 綁定到類的方法:在類內定義的被裝飾器@classmethod修飾的方法

二:非綁定方法:沒有自動傳值這麽一說了,就類中定義的一個普通工具,對象和類都可以使用
    非綁定方法:不與類或者對象綁定,在類內定義的被裝飾器@staticmethod修飾的方法

說明:未做任何修飾時:在類內定義的方法是綁定給對象的,對象調用時,不需要傳自己給self. 類調用類的方法時,需要傳self(對象)給第一個參數。


‘‘‘

class Foo:
    def __init__(self,name):
        self.name=name

    def tell(self):
        print(‘名字是%s‘ %self.name)

    @classmethod
    def func(cls): #cls=Foo
        print(cls)

    @staticmethod
    def func1(x,y):
        print(x+y)

f=Foo(‘egon‘)

# print(Foo.tell)
# Foo.tell(f)
# print(f.tell)

# f.tell()

# print(Foo.func)
# Foo.func()

# print(Foo.func1)
# print(f.func1)

Foo.func1(1,2)
f.func1(1,3)

  

3.1.9 類內部定義的函數:綁定方法與非綁定方法