面向对象高级C(元类补充及单例模式(待补充))
Posted michealjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象高级C(元类补充及单例模式(待补充))相关的知识,希望对你有一定的参考价值。
有些地方还有一点模棱两可,先放在这,周六抽一个上午把这个整理完
元类中
_init_: 控制类的产生,在__new__之后
_call_: 控制对象的产生
_new_: 控制类产生最根上,其实本质最根上也不是它,是type的__call_,但是我们看不到了
object.__new__(Person) #生成Person类的对象 空的
type.__new__(cls, name, bases, dic) #生成cls这个类对象,里面有东西
#模板:控制对象的产生
class Mymeta(type):
def __call__(self, *args, **kwargs):
obj = object.__new__(self) #先new一个对象
obj.__init__(*args, **kwargs) #在初始化对象
return obj
class Person(metaclass=Mymeta):
def __init__(self,name):
self.name = name
def __call__(self, *args, **kwargs):
print('XXXX')
p = Person('lqz')
以上是关于面向对象高级C(元类补充及单例模式(待补充))的主要内容,如果未能解决你的问题,请参考以下文章