码迷,mamicode.com
首页 > 其他好文 > 详细

控制类及其调用过程

时间:2018-07-02 20:13:39      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:size   sel   print   acl   span   def   rgs   call   turn   

class Mymeta(type):
def __init__(self,class_name,class_bases,class_dic):
#控制类Foo的创建
super(Mymeta,self).__init__(class_name,class_bases,class_dic)

def __call__(self, *args, **kwargs):
#控制Foo的调用过程,即Foo对象的产生过程
obj = self.__new__(self)
self.__init__(obj, *args, **kwargs)
obj.__dict__={‘_%s__%s‘ %(self.__name__,k):v for k,v in obj.__dict__.items()}

return obj

class Foo(object,metaclass=Mymeta): # Foo=Mymeta(...)
def __init__(self, name, age,sex):
self.name=name
self.age=age
self.sex=sex


obj=Foo(‘egon‘,18,‘male‘)
print(obj.__dict__)

控制类及其调用过程

标签:size   sel   print   acl   span   def   rgs   call   turn   

原文地址:https://www.cnblogs.com/wangcheng9418/p/9255318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!