classmethod与staticmethod内置装饰器

python

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、绑定方法总结

  ① 对象的绑定方法:

    由对象来调用,由谁来调用,会将谁(对象)当做第一个参数传入

  ② 类的绑定方法:

    由类来调用,由谁来调用,会将谁(类)当做第一个参数传入

  ③ 非绑定方法:

    可以由对象或者类来调用,谁来调用都是一个普通方法(普通函数),方法需要传入几个参数,调用时候就得传入几个参数

以上是 classmethod与staticmethod内置装饰器 的全部内容, 来源链接: utcz.com/z/530092.html

回到顶部