你可以在Python中使用字符串格式吗?

时间:2014-04-26 07:06:23

标签: python string class format

我需要为某些事物命名,例如:

for a in range(10):
    class Class#"%s"(object): % (num)
         '''Class Content'''
    num += 1

我的问题是,这是可能的,如果没有,还有什么选择。

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了解详情。