【发布时间】:2012-03-24 02:45:13
【问题描述】:
这是function that returns a dict whose keys are the names of the input arguments 的后续,我学到了很多东西(释义):
- 总的来说,Python 对象不知道它们的名称。
- 不,这通常对
*args是不可能的。您必须使用关键字参数 - 当参数数量固定时,您可以使用
locals执行此操作 - 使用全局变量()。这仅在模块范围内的值是唯一的情况下才有效,因此它很脆弱
- 您最好还是不要这样做,而是重新考虑问题。
第一点强调了我对 Python 变量的根本误解。回答非常具有教学性,几乎是即时的,显然这是一个易于理解但容易混淆的话题。
由于我想学习如何正确地做事,创建一个虚拟类来简单地保存带有附加名称的变量是否被认为是不好的做法?
class system: pass
S = system ()
S.T = 1.0
S.N = 20
S.L = 10
print vars(S)
这实现了我的初衷,但我想知道是否有什么我没有考虑到的东西会在以后咬我。
【问题讨论】:
-
我仍然不明白你的实际目标是什么。 “具有名称的值”的 Python 数据结构是一个字典:
dict(T=1.0, N=20, L=10)。在某些情况下,有些人更喜欢您使用的命名空间对象,但如果没有更多上下文,很难给出建议。 -
我错过了什么吗?这给了你什么字典没有的东西?
-
@PaoloBergantino:例如,
argparse使用这样的命名空间对象,因为有时通过S.T访问属性比更嘈杂的S["T"]更方便。
标签: python class dictionary