classmethod与staticmethod内置装饰器
1、classmethod
是一个装饰器,给在类内部定义方法装饰,将类内部的方法变为 “类的绑定方法”
class DB:
__data = "tom is very cute"
def __init__(self, user, pwd, role):
self.user = user
self.pwd = pwd
self.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)
执行结果:
123
1234
3、绑定方法总结
① 对象的绑定方法:
由对象来调用,由谁来调用,会将谁(对象)当做第一个参数传入
② 类的绑定方法:
由类来调用,由谁来调用,会将谁(类)当做第一个参数传入
③ 非绑定方法:
可以由对象或者类来调用,谁来调用都是一个普通方法(普通函数),方法需要传入几个参数,调用时候就得传入几个参数
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!