我需要为某些事物命名,例如:
for a in range(10):
class Class#"%s"(object): % (num)
'''Class Content'''
num += 1
我的问题是,这是可能的,如果没有,还有什么选择。
答案 0 :(得分:2)
您可以使用元类(用于创建类的东西)来完成它。例如:
>>> type('ClassName', (), {})
<class '__main__.ClassName'>
第二个参数是基类的元组,第三个参数是包含attribute name
的字典 - &gt; attribute value
对:
>>> cls = type('ClassName', (object,), {'varname': 'var'})
>>> cls.varname
'var'
来自documentation on type
function:
使用三个参数,返回一个新的类型对象。这实际上是类语句的动态形式。名称字符串是类名,并成为__name__
属性;基元元组列出基类并成为__bases__
属性; dict字典是包含类体定义的命名空间,并成为
__dict__
属性。
同时阅读this awesome answer了解详情。