类名作为python中的变量

时间:2013-08-26 11:39:28

标签: python oop types argument-passing

我记得C ++中的以下代码:

myObj = MyClass();
typedef typeof(myObj) NewClass;
NewClass   newObj = NewClass();

然后myObjnewObj来自MyClass。

现在我需要在function中写一个python并将myobject传递给我的function,然后再调用我constructor myobject 。我有很多class

问题:我是怎么做到的?

1 个答案:

答案 0 :(得分:2)

这将创建对MyClass的引用:

>>> class MyClass(object):
...     pass
... 
>>> myObj = MyClass()
>>> NewClass = myObj.__class__
>>> newObj = NewClass()
>>> myObj, newObj
(<__main__.MyClass object at 0x102740d90>, <__main__.MyClass object at 0x102740d50>)

这将基于myObj的类创建一个新类:

>>> myObj = MyClass()
>>> NewClass = type("NewClass", (myObj.__class__,), {})
>>> newObj = NewClass()
>>> myObj, newObj
(<__main__.MyClass object at 0x102740d90>, <__main__.NewClass object at 0x102752610>)
>>>