Reg*_*May 10 python oop python-3.x
给定一个对象,很容易在 python 中获取对象类型:
obj = SomeClass()
t = type(obj)
Run Code Online (Sandbox Code Playgroud)
如何在不首先创建类的实例的情况下执行此操作?
背景:一旦您拥有类型,您就可以轻松创建该类型的实例。使用这种机制,我想将一个类型传递给一个对象,该对象稍后将创建该类型的实例。不必先创建一个会立即再次丢弃的对象是非常合理的。
请参阅此示例代码:
class MyClass(object):
pass
if __name__ == '__main__':
o1 = MyClass()
c = MyClass
o2 = c()
print(type(o1), type(o2), MyClass)
Run Code Online (Sandbox Code Playgroud)
定义一个类会将其绑定到它的名称(此处:)MyClass,这只不过是对该定义的引用。在这个例子中,发出c = MyClass只是将类引用镜像到另一个变量,变量的内容c和MyClass现在完全相同。MyClass()因此,您可以通过调用其中任何一个(即或)来实例化该类的对象c(),从而产生相同的效果。
此外,测试实例化对象的类型会产生完全相同的类引用。您甚至可以更进一步执行以下操作:
o3 = type(o1)()
Run Code Online (Sandbox Code Playgroud)
它创建了该类的一个新实例o1。