标签:UNC play href 字符串 title ati eth toc user
是一个装饰器,在给类内部定义方法中装饰,将类内部的方法变为“类的绑定方法”
class DB:
__data = ‘宝藏的地点在贵州‘
def __init__(self, user, pwd):
self.user = user
self.pwd = pwd
@classmethod # 使用类的绑定方法,会将类作为第一个参数传入,因此cls此时就是DB类
def check_db(cls, user, pwd): # 并将‘wrx‘和‘123‘传入
# 在类方法内部调用类产生一个实例--->obj
# 调用类的时候会自动把obj作为第一个参数传入类中的self中,并把cls()括号里面的参数一并传入__init__,并执行__init__
obj = cls(user, pwd) # obj = DB(‘wrx‘, ‘123‘)
if obj.user == ‘wrx‘ and obj.pwd == ‘123‘:
print(cls.__data) # db类中有这个属性,因此可以获得
DB.check_db(‘wrx‘, ‘123‘) # 此时是类在调用类中的方法,因此只会把括号后面的参数传入方法中
是一个装饰器,在给类内部定义方法中装饰,将类内部的方法变为“非绑定方法”
import uuid # 用于产生随机字符串的模块
# 由时间戳以及某种算法组合而成,会产生一串世界上独一无二的字符串
class Foo:
@staticmethod
def func(res):
print(res)
obj = Foo()
# 对象调用非绑定方法
obj.func(123)
# 类调用非绑定方法
Foo.func(321)
>>>123
>>>321
面向对象之classmethod和staticmethod(python内置装饰器)
标签:UNC play href 字符串 title ati eth toc user
原文地址:https://www.cnblogs.com/cnhyk/p/11953497.html