zoukankan      html  css  js  c++  java
  • classmethod自己定制

    # # 利用描述符原理定义一个@classmethod
    # class ClassMethod:
    #     def __init__(self,func):
    #         self.func = func
    #     def __get__(self,instance, owner):
    #         # 类来调用,instance为None,owner为类本身,
    #         # 实例来调用,instance为实例,owner为类本身,
    #         def feenback():
    #             print(instance,owner)
    #             print('在这里可以加功能')
    #             return self.func(owner)
    #         return feenback
    # class People:
    #     name = 'wangcong'
    #     @ClassMethod
    #     def say_hi(cls):
    #         print(cls)
    #         print("你好啊, %s" %cls.name)
    #
    # # say_hi = ClassMethod(say_hi)
    # People.say_hi()
    #
    # p1 = People()
    # print(p1.name)
    # p1.say_hi()
    
    
    # 类方法有参数
    class ClassMethod:
        def __init__(self,func):
            self.func = func
        def __get__(self,instance,owner):
            def feedback(*args,**kwargs):
                print("在这里可以加工能")
                return self.func(owner,*args,**kwargs)
            return feedback
    class People:
        name='linhaifeng'
        @ClassMethod # say_hi=ClassMethod(say_hi)
        def say_hi(cls,msg):
            print('你好啊,帅哥 %s %s' %(cls.name,msg))
    People.say_hi('你是那偷心的贼')
    
    p1=People()
    p1.say_hi('你是那偷心的贼')
  • 相关阅读:
    PDO的预处理操作
    关于OOP(面向对象)
    关于MySql
    任务三
    任务二
    php文件操作
    php的会话技术
    php的常量 、变量和作用域
    php的函数和超全局变量
    预发布环境和分支部署
  • 原文地址:https://www.cnblogs.com/cong12586/p/11419730.html
Copyright © 2011-2022 走看看