📅  最后修改于: 2020-09-20 04:38:28             🧑  作者: Mango
type()
函数具有两种不同的形式:
type(object)
type(name, bases, dict)
如果将单个object
传递给type()
,则该函数返回其类型。
numbers_list = [1, 2]
print(type(numbers_list))
numbers_dict = {1: 'one', 2: 'two'}
print(type(numbers_dict))
class Foo:
a = 0
foo = Foo()
print(type(foo))
输出
如果您需要检查对象的类型,最好使用Python的 isinstance() 函数代替。这是因为isinstance()
函数还会检查给定对象是否是子类的实例。
如果将三个参数传递给type()
,它将返回一个新的类型对象。
这三个参数是:
Parameter | Description |
---|---|
name | a class name; becomes the __name__ attribute |
bases | a tuple that itemizes the base class; becomes the __bases__ attribute |
dict | a dictionary which is the namespace containing definitions for the class body; becomes the __dict__ attribute |
o1 = type('X', (object,), dict(a='Foo', b=12))
print(type(o1))
print(vars(o1))
class test:
a = 'Foo'
b = 12
o2 = type('Y', (test,), dict(a='Foo', b=12))
print(type(o2))
print(vars(o2))
输出
{'b': 12, 'a': 'Foo', '__dict__': , '__doc__': None, '__weakref__': }
{'b': 12, 'a': 'Foo', '__doc__': None}
在程序中,我们使用了Python的 vars() 函数 ,该函数返回__dict__
属性。 __dict__
用于存储对象的可写属性。
您可以根据需要轻松更改这些属性。例如,如果您需要将o1
的__name__
属性更改为'Z'
,请使用:
o1.__name = 'Z'