python自定制classmethod (类方法)


利用描述符和类装饰器自定义classmethod方法

class ClassMethod:
    def __init__(self,func):
        self.func = func

    def __get__(self, instance, owner):
        def deco(*args,**kwargs):
            self.func(owner,*args)
        return deco

class People:
    name = 'qqq'
    @ClassMethod #sayHello = ClassMethod(sayHello)
    def sayHello(cls,msg):
        print("你好, %s  帅哥 %s" %(cls.name,msg))

    @classmethod
    def sayHello1(cls,msg):
        print("你好 %s  %s" %(cls.name,msg))

p1 = People()
p1.sayHello1('sadsad')
p1.sayHello('dsadwqdqw')
People.sayHello('safsaf')
People.sayHello1('sfdsfdsf')

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM