我正在尝试创建一个传递参数的函数x
并返回一个新类C
. C
应该是固定基类的子类A
,仅添加一项:添加某个类属性并将其设置为 equalx
.
换句话说:
class C(A):
C.p = x # x is the parameter passed to the factory function
这容易做到吗?有什么我应该注意的问题吗?
首先,请注意术语“类工厂”在 Python 中有些过时了。它在 C++ 等语言中用于返回类的动态类型实例的函数。它之所以有这个名字,是因为它在 C++ 中脱颖而出;这种情况并不罕见,但由于太不常见,因此给模式命名很有用。然而,在 Python 中,这是不断进行的——这是一个非常基本的操作,以至于没有人再费心给它起一个特殊的名字。
另请注意,类工厂返回类的实例,而不是类本身。 (同样,这是因为它来自 C++ 等语言,这些语言没有返回类的概念——仅返回对象。)但是,您说您想要返回“一个新类”,而不是类的新实例。
创建本地类并返回它很简单:
def make_class(x):
class C(A):
p = x
return C
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)