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

类的起源

时间:2018-10-09 11:41:23      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:创建   特殊   *args   __new__   方法   产生   cal   def   fun   

```# ## 特殊方式创建类 def func(self): print("hello %s"%self.name) def ccc(self,name,age): self.name=name self.age=age #Foo是实例也是对象,type是类的类(类他爹,类是type实例化产生的) Foo=type("Foo",(object,),{"talk":func, "__init__":ccc}) f=Foo("alex","12") f.talk() class MyType(type): def __init__(self,*args,**kwargs): print("Mytype __init__",*args,**kwargs) def __call__(self, *args, **kwargs): print("Mytype __call__", *args, **kwargs) obj = self.__new__(self) print("obj ",obj,*args, **kwargs) print(self) self.__init__(obj,*args, **kwargs) return obj def __new__(cls, *args, **kwargs): print("Mytype __new__",*args,**kwargs) return type.__new__(cls, *args, **kwargs) print(‘here...‘) class Foo(object,metaclass=MyType): def __init__(self,name): self.name = name print("Foo __init__") def __new__(cls, *args, **kwargs): #__new__是用来创建实例的(先执行) print("Foo __new__",cls, *args, **kwargs) return object.__new__(cls) #继承父类里的__new__方法 obj= Foo("Alex") print(obj.name) # print("f",f) # print("fname",f.name)

类的起源

标签:创建   特殊   *args   __new__   方法   产生   cal   def   fun   

原文地址:http://blog.51cto.com/12992048/2296150

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