元类
class(类)也是一个对象!创建类的叫做元类,不过一般还是用class 定义类,不用type,因为若方法或者属性复杂的时候要定义多个函数
动态也可以创建类,但是一般情况下不要这样做
type还有另一个功能:创建类 type(类名,由父类名称组成的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
如:test = type("test",(),{})
包含有属性的类创建方法:
1 class Person: 2 nums = 0 3 #也可以用type创建类 4 Person2 = type("Person2",(),{"nums":0})
用type创建有方法的类方法:
1 class Test1(object): 2 def printNum(self): 3 print("...num-%d..."%self.num) 4 t1 = Test1() 5 t1.num = 100 6 t1.printNum() 7 8 #用type创建的方式: 9 def printNum1(self): 10 print("...num-%d..."%self.num) 11 #创建Test2这个类 12 Test2 = type("Test2",(),{"printNum1":printNum1})#表示用printNum1为上面函数的引用 13 t2 = Test2() 14 t2.num = 100 15 t2.printNum1()
用type创建有继承的类的方法:
1 class Animal(object): 2 def eat(self): 3 print("...eat...") 4 class Dog(Animal): 5 pass 6 wangcai = Dog() 8 wangcai.eat() 9 10 #用type创建有继承的类的格式: 11 Cat = type("Cat",(Animal,),{}) 12 xiaohuamao = Cat() 13 xiaohuamao.eat()

浙公网安备 33010602011771号