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