绑定方法与非绑定方法介绍

'''
在类内部定义的函数,分为两大类:
一:绑定方法:绑定给谁,就应该有谁来调用,谁来调用就会把调用者当第一个参数自动传入
绑定到对象的方法:在类内定义的没有被任何装饰器修饰的
绑定到类的方法:在类内定义的被装饰器classsmethod修饰的方法
二:非绑定方法:没有自动传值这么一说了,就类中定义的一个普通工具,对象和类都可以使用
非绑定方法:不与类或者对象绑定
'''

# --------------- 绑定给对象用的函数如下 -------------------

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

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


# --------------- 绑定给类用的函数如下 ------------------------
@classmethod
def func(cls):
print(cls)

# ---------------- 非绑定方法 -----------------------
@staticmethod
def func1(x,y):
print(x+y)

f1= Foo('kingforn')
f1.tell() # 绑定对象
Foo.func() # 绑定类

'''
执行结果:
名字是kingforn
<class '__main__.Foo'>
'''
print(f1.func1)
print(Foo.func1)
'''
执行结果:
<function Foo.func1 at 0x0000019E4DECFBF8>
<function Foo.func1 at 0x0000019E4DECFBF8>
'''
Foo.func1(1,2)
f1.func1(1,2)
'''
执行结果:
3
3
'''
原文地址:https://www.cnblogs.com/kingforn/p/11343733.html