Python反射和可调用对象

jbc*_*tin 3 python oop reflection class

我有两个问题.

>>> class One(object):
...     pass
... 
>>> class Two(object):
...     pass
... 
>>> def digest(constr):
...     c = apply(constr)
...     print c.__class__.__name__
...     print constr.__class__.__name__
... 
>>> digest(Two)
Two
type
Run Code Online (Sandbox Code Playgroud)

如何创建对象'Two'?constr()或c()都不起作用; 似乎apply将它变成了一种类型.

将类和实例传递给方法时会发生什么?

pok*_*oke 5

类是高级对象,因此您可以像这样简单地传递它们:

def createMyClass ( myClass ):
    obj = myClass()
    return obj

class A ( object ):
    pass

>>> x = createMyClass( A )
>>> type( x )
<class '__main__.A'>
Run Code Online (Sandbox Code Playgroud)