元类

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()

 

posted @ 2019-05-22 21:38  搭欣者  阅读(226)  评论(0)    收藏  举报