
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' glbals = {} glbals[k] = [] glbals['test'].append(3) print(glbals['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 这个需求非常奇怪,一定是哪里有问题。 如果一定要用,就只能 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 问题 |