如何在Python中动态创建对象?我经常想将信息传递给Django模板,其格式如下:
{'test': [a1, a2, b2], 'test2': 'something else', 'test3': 1}
这使得模板看起来不整洁。所以我认为最好创建一个对象,它是这样的:
class testclass():
self.test = [a1,a2,b2]
self.test2 = 'someting else'
self.test3 = 1
testobj = testclass()
所以我可以:
{{ testobj.test }}
{{ testobj.test2 }}
{{ testobj.test3 }}
而不是去查字典。
因为我只需要那个对象一次,所以不先编写类就可以创建它吗?有短的手码吗?这样做可以吗?还是糟糕的Python?
您可以使用内置的type function:
但在这种特定情况下(Django模板的数据对象),应该使用@Xion的解决方案。
在Django模板中,点符号(
testobj.test
)可以解析为Python的[]
运算符。这意味着你只需要一个普通的口述:将其作为
testobj
变量传递到模板,您可以在模板中自由使用{{ testobj.test }}
和类似的表达式。它们将被翻译成testobj['test']
。这里不需要专门的课程。在Python 3.3+
types.SimpleNamespace
中还有另一个解决方案相关问题 更多 >
编程相关推荐