首页 > 其他 > 详细

高阶函数,装饰器函数,类方法,

时间:2020-07-21 00:29:47      阅读:82      评论:0      收藏:0      [点我收藏+]

如何装饰一个类?

为一个类通过装饰,增加一些类属性。

之所以能够装饰,本质上是为类对象动态的添加了一个属性,而这个标识符My指向这个类对象。

def sethu(name):
    def wrapper(self):
        self.NAMES=name
        #print(self)
        return self
    #print(wrapper)
    return wrapper
@sethu(‘xiao hua‘)
class My:
    pass
print(My.__dict__)

 

普通方法本身都是类的属性,第一个参数必须是self,而self必须指向一个对象,也就是类必须实例化之后,由实例来调用这个方法。

类方法@classmethod

技术分享图片

 

 

class Xi:
    aha="类属性"
    def foo(self):
        print("foo")
    def bar():
        print("bar")
    @classmethod
    def xy(cls):#类方法
        print(cls.aha)
    @staticmethod
    def jing():#静态方法
        print("jing")
a=Xi()
print(a.foo())
Xi.bar()
#a.bar()#报错TypeError: bar() takes 0 positional arguments but 1 was given
print(Xi.__dict__)
Xi.xy()
a.xy()#a.__class__.xy()
Xi.jing()
a.jing()

  

   

高阶函数,装饰器函数,类方法,

原文:https://www.cnblogs.com/canglongdao/p/13348245.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!