1
xiaochun41 Jan 7, 2021
exec,eval 可以了解下。
|
2
todd7zhang Jan 7, 2021
k = 'test'
globals()[k] = [] test.append(3) 不建议这么玩,哈哈 |
3
krixaar Jan 7, 2021
接#2,直接玩 globals()还是有点危险,所以可以自己搞一个汇总字典,例如:
k = 'test' glöbals = {} glöbals[k] = [] glöbals['test'].append(3) print(glöbals['test']) 🤣 |
4
Yvvon Jan 7, 2021
a = {'test1': 1, 'test2': 2}
for k, v in a.items(): print(k) exec(f'{k} = []') print(test1) print(test2) |
5
jmc891205 Jan 7, 2021
|
6
Vegetable Jan 7, 2021 这个需求非常奇怪,一定是哪里有问题。
如果一定要用,就只能 locals().setdefault('test',list()) setdefault 避免覆盖现有变量,但是需要更多的工作判断是否创建成功,进一步来说,你编码时不知道变量名,想使用这个变量又只能使用 locals()或者 globals(),无法通过字面调用。那创建这个变量的意义又在哪呢 |
7
HelloViper Jan 8, 2021
这种需求一般是要批量创建对象
你直接用字典管理,访问对象用 key 来索引: {"test1":obj(*params1),"test2":obj(*params2)....} |
9
diwuqin OP 已解决, 多谢各位~
|
10
canwushuang Jan 12, 2021
程序中名字不重要,一切都是指针。典型的 xy 问题
|