[Python3 填坑] 018 组装类的几个例子


1. print( 坑的信息 )

  • 挖坑时间:2019/04/07
  • 明细
坑的编码 内容
Py024-2 MethodType 举例
Py024-3 type 举例
Py024-4 MetaClass 举例



2. 开始填坑

2.1 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()

2.2 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()

2.3 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

猜你喜欢

转载自www.cnblogs.com/yorkyu/p/10713032.html
今日推荐