我想创建一个具有许多属性的模块(在我的例子中,是带有前缀的国际单位制,如mm、cm、km等).显而易见的方法是一个接一个地指定它们,比如
# module.py
mm = "mm"
cm = "cm"
km = "km"
# and so on
目前,我想拥有大约600个此类属性,所以对我来说,这样做似乎是错误的.
# module.py
_prefixes = ["m", "c", "k"]
_names = ["m", "g"]
# Automate this
mm = "mm"
cm = "cm"
km = "km"
mg = "mg"
cg = "cg"
kg = "kg"
如果我想让这些属性成为一个类的属性,我可以使用setattr(class, prefix + name, prefix + name)
,但到目前为止,我还没有找到将其转换为模块属性的方法.
我知道我可以使用dict
或类似的值来代替属性,但我想允许像from module import km
这样的导入,据我所知,只有直接属性才可能.
有没有办法通过编程生成这些属性?如果是这样,我应该使用它还是逐个定义属性(例如使用为我生成python代码的脚本)?