📅  最后修改于: 2020-07-22 04:52:43             🧑  作者: Mango
type()
方法返回作为参数传递的参数(对象)的类类型。type()函数主要用于调试目的。
可以将两种不同类型的参数传递给type()函数,即单个参数和三个参数。如果type(obj)
传递了单个参数,则返回给定对象的类型。如果type(name, bases, dict)
传递了三个参数,它将返回一个新的类型对象。
句法 :
type(object)
type(name, bases, dict)
参数:
name:类的名称,该名称后来对应于该类的__name__属性。
bases:当前类的派生类的元组。以后对应于__bases__属性。
dict:一个字典,用于保存类的名称空间。以后对应于__dict__属性。
返回类型:
返回一个新的类型类或本质上是一个元类。
代码1:
# Python3简单代码解释type()函数
print(type([]) is list)
print(type([]) is not list)
print(type(()) is tuple)
print(type({}) is dict)
print(type({}) is not list)
输出:
True
False
True
True
True
代码2:
# 解释type()函数的Python3代码
# 类型dict类
class DictType:
DictNumber = {1:'John', 2:'Wick',
3:'Barry', 4:'Allen'}
# Will print the object type
# of existing class
print(type(DictNumber))
# 类型列表类别
class ListType:
ListNumber = [1, 2, 3, 4, 5]
# Will print the object type
# of existing class
print(type(ListNumber))
# 元组类型
class TupleType:
TupleNumber = ('Geeks', 'for', 'geeks')
# Will print the object type
# of existing class
print(type(TupleNumber))
# 创建每个类的对象
d = DictType()
l = ListType()
t = TupleType()
输出:
< class'list'> <
class'tuple'>
代码3:
# 解释type()函数的Python3代码
class DictType:
DictNumber = {1:'John', 2:'Wick', 3:'Barry', 4:'Allen'}
# 类型列表类别
class ListType:
ListNumber = [1, 2, 3, 4, 5]
# 创建每个类的对象
d = DictType()
l = ListType()
# 无论两个对象是否属于同一类型,都将进行相应打印
if type(d) is not type(l):
print("两个类都有不同的对象类型.")
else:
print("相同的对象类型")
输出:
两个类都有不同的对象类型.
代码4:使用type(name, bases, dict)
# Python3程序演示类型
# type(name, bases, dict)
# 动态类型初始化为type()的新类(无基类)
new = type('New', (object, ),
dict(var1 ='GeeksforGeeks', b = 2009))
# 打印type()返回类'type'
print(type(new))
print(vars(new))
# 基类,纳入我们的新类
class test:
a = "Geeksforgeeks"
b = 2009
# 动态初始化较新的类,它将从基类测试派生
newer = type('Newer', (test, ),
dict(a ='Geeks', b = 2018))
print(type(newer))
print(vars(newer))
输出:
{'__module__': '__main__', 'var1': 'GeeksforGeeks', '__weakref__': , 'b': 2009, '__dict__': , '__doc__': None}
{'b': 2018, '__doc__': None, '__module__': '__main__', 'a': 'Geeks'}
应用范围: