python_106_创建类的两种方式
class Foo(object): def __init__(self, name): self.name = name f = Foo("alex") print(type(f),type(Foo))#f的数据类型是class,Foo的数据类型是type print(type(f)) # 输出:<class '__main__.Foo'> 表示,obj 对象由Foo类创建 print(type(Foo)) # 输出:<type 'type'> 表示,Foo类对象由 type 类创建 # f对象是Foo类的一个实例,Foo类对象是 type 类的一个实例,即:Foo类对象 是通过type类的构造方法创建。 # 那么,创建类就可以有两种方式: # a). 普通方式 class Foo(object): def func(self): print('hello alex') # b). 特殊方式 def func(self): print('hello %s'%self.name) def __init__(self,name,age): self.name=name self.age=age Foo = type('Foo', (object,), {'talk': func, '__init__':__init__})#object,即新式类后边的逗号不能去。(object,)可写成(),即:里边可以为空,写的是继承的类 #type第一个参数:类名 #type第二个参数:当前类的基类 #type第三个参数:类的成员 print(type(Foo)) f=Foo('qiqi',22) f.talk()
So 记住,类是由 type 类实例化产生