classmethod与staticmethod内置装饰器
classmethod与staticmethod内置装饰器
1、classmethod
是一个装饰器,给在类内部定义方法装饰,将类内部的方法变为 “类的绑定方法”
class DB:__data = "tom is very cute"def__init__(self, user, pwd, role):
self.user
= userself.pwd
= pwdself.role
= role@classmethod
def check_db(cls, user, pwd, role): # cls指的是类# 在类方法内部调用类产生一个实例 ---> 对象
obj = cls(user, pwd, role)
# 查看数据前必须通过校验
if obj.user == "root"and obj.pwd == "123"and obj.role == "admin":
return cls.__data
print(DB.check_db("root", "123", "admin"))
执行结果:
tom is very cute
2、staticmethod
staticmethod:静态方法
是一个装饰器,给在类内部定义方法装饰,将类内部的方法变为 “非绑定方法”
class Foo:@staticmethod
def func(self):print(self)obj
= Foo()# 对象调用非绑定方法obj.func(123)
# 类调用非绑定方法Foo.func(1234)
执行结果:
1231234
3、绑定方法总结
① 对象的绑定方法:
由对象来调用,由谁来调用,会将谁(对象)当做第一个参数传入
② 类的绑定方法:
由类来调用,由谁来调用,会将谁(类)当做第一个参数传入
③ 非绑定方法:
可以由对象或者类来调用,谁来调用都是一个普通方法(普通函数),方法需要传入几个参数,调用时候就得传入几个参数
以上是 classmethod与staticmethod内置装饰器 的全部内容, 来源链接: utcz.com/z/530092.html