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