python type

https://docs.python.org/3/library/functions.html#type

1.type(object)
class type(object)
返回一个对象的类型,等价于object.__class__
The isinstance() built-in function is recommended for testing the type of an object, because it takes subclasses into account.

type和isinstance
type不会认为子类是父类的类型,不会考虑继承关系。isinstance会任务子类是父类的类型,考虑继承关系。

type为对象的顶点,所有对象都创建自type。

object为类继承的顶点,所有类都继承自object。

python中万物皆对象,一个python对象可能拥有两个属性,__class____base____class__表示这个对象是谁创建的,__base__表示一个类的父类是谁。

2.type(name, bases, dict)
class type(name, bases, dict)
动态的创建一个类,等同于写class,name就是__name__类的名称属性,base就是__base__基类,dict就是__dict__,类的属性和方法

name:类名
bases:父类的元组
dict:类属性的方法和值

下面创建类的方法是等同的

class X:
    a = 1

X = type('X', (object,), dict(a=1))

使用type创建类,本质上和写class没有区别


def say(self): # 定义一个函数,一会通过type放入类中
    print("hello")

Person = type("Person",(object,),dict(say = say, name = "wang")) #使用 type() 函数创建类 另外注意,元组只有一个元素时`,`号不能省略
person = Person() # 实例化对象
person.say()#调用 say() 方法和 name 属性
print(person.name)

参考:
http://c.biancheng.net/view/2292.html
https://www.cnblogs.com/mxuanli/p/9805122.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章