'''在函数内部定义说的函数分为两大类:
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是一个性质