1. 程式人生 > >面向物件&網路程式設計 繫結方法與非繫結方法介紹

面向物件&網路程式設計 繫結方法與非繫結方法介紹

'''在函式內部定義說的函式分為兩大類:
1:繫結方法 繫結給誰, 就應該由誰來呼叫,誰來呼叫就會把誰當做第一個引數傳入
1:繫結到物件 在類內定義沒有被任何裝飾器修飾的
2:繫結到類 在類內定義的被裝飾器classmethod修飾的方法或者函式
2:非繫結方法 就沒有自動傳值這麼一說,使用staticmethod就是一個普通的函式,此時類和物件都可以使用
1:不與類或者物件繫結


'''
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():
pass
print(Foo.func) #此時列印就是現實是一個繫結到類的方法
Foo.func() #用類直接去呼叫繫結自己的函式
print(Foo) #打印出來一個類 它與呼叫函式func列印cls是一個性質