Python元类编程(type)

2019-05-29  本文已影响0人  憧憬001
一、类是如何产生的
# 定义一个父类
class Parent:
    def foo(self):
        print('Parent')
        
# 准备一个方法
def say(self):
    print('hello')
    
# 使用type来创建一个类
Person = type('Person',(Parent,),{'name':'person','say':say})

p = Person()

p.foo()
p.say()
# 结果
Parent
hello
元类

就连 object 也是由type创建的
哈哈,就连type自己也是type创建的

In [1]: type(type)
Out[1]: type

In [2]: type(object)
Out[2]: type

In [3]: type(int)
Out[3]: type

In [4]: type(str)
Out[4]: type

In [5]: type(bool)
Out[5]: type

In [6]: type(list)                                                       
Out[6]: type

示例

# 继承type
class Base(type):
    def __new__(cls,*args,**kwargs):
        print('in Base')
        return super().__new__(cls,*args,**kwargs)
    
class Person(metaclass=Base):
    def __init__(self,name):
        self.name = name

p = Person('tom')

# 控制台
in Base
上一篇下一篇

猜你喜欢

热点阅读