zoukankan      html  css  js  c++  java
  • 18 组装类举例

    MetaClass

    from types import MethodType
    
    
    class A:
        pass
    
    
    def say(self):
        print("this is say()")
    
    
    a = A()
    a.say = MethodType(say, A)
    a.say()
    

    >>>

    this is say()
    

    type

    # 1. 定义类应该具有的成员函数
    def say(self):
        print("this is say()")
    
    
    def eat(self):
        print("this is eat()")
    
    
    # 2. 用 type 来创建一个类
    A = type("AName", (object,), {"class_say": say, "class_eat": eat})
    
    # 3. 像正常访问一样使用类
    a = A()
    
    a.class_say()
    a.class_eat()
    

    >>>

    this is say()
    this is eat()
    

    MetaClass

    # 元类写法是固定的,必须继承自 type
    # 元类一般命名以 MetaClass 结尾
    class ExampleMetaClass(type):
        def __new__(cls, region, gender, attrs):
            print("this is MetaClass")
            attrs['id_num'] = '9527'
            attrs['age'] = "18"
            return type.__new__(cls, region, gender, attrs)
    
    
    # 元类定义完就可以使用
    class Person(object, metaclass=ExampleMetaClass):
        pass
    
    
    york = Person()
    print(york.id_num)
    

    >>>

    this is MetaClass
    9527
    
  • 相关阅读:
    discuz $_G变量
    php & 引用
    discuz模板引擎
    nginx正则表达式
    linux系统安装 dig和nslookup命令
    linux中的各种$号 位置参数变量
    memcache图形管理工具
    mysql 注入问题
    pycharm 连接mysql失败
    Bootstrap 常用网站
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10713032.html
Copyright © 2011-2022 走看看