在 javascript 中,您可以通过以下方式创建对象:
const a = 5;
const b = 10;
const c = {a, b};
// This will make c = {a: 5, b: 10}
Run Code Online (Sandbox Code Playgroud)
Python中有这样的“简写”吗?
到目前为止,我必须做:
a = 5
b = 10
c = {'a': a, 'b': b}
Run Code Online (Sandbox Code Playgroud)
小智 0
在这种特定情况下,答案是“否”,因为示例中的 a 和 b 是 __main__ 或其他模块中 int 对象的标签。a 没有任何类似于属性“a”的内容。
然而,更接近您想要的东西是可能的,尽管它肯定接近肮脏的黑客,具体取决于您正在做什么。例如,如果从 main 运行:
a = 5
b = 10
c = {i : eval(i) for i in dir() if "_" not in i}
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为“a”和“b”(即名称/标签)确实存在于更高的对象中,即 __main__ 或您的模块中。您需要过滤器来排除其他隐藏属性。从使用 dir() 开始,这个例子由于很多原因都非常 hacky,但该原理在更合适的情况下会起作用,例如当 a 和 b 是较低对象的属性时。然而,在这些情况下,我无法想象你为什么要这样做,因为你基本上已经拥有了那本字典。
所以这在 python 中相当困难的原因实际上是因为根本没有必要这样做。
| 归档时间: |
|
| 查看次数: |
3170 次 |
| 最近记录: |