Python能否在函数中创建多个名称按递增规则变化的变量
回答
你的需求完全可以在Python中实现,我们提供两种实现路径,优先推荐更符合Python开发规范的方案:
方案1:使用字典存储动态键值对(优先推荐)
直接生成独立的动态变量容易引发命名冲突、降低代码可读性,绝大多数场景下用字典就能完全满足需求,写法如下:
# 初始化存储动态变量的字典 dynamic_vars = {} increment = 1 variable = "你需要存储的对应值" # 拼接键名并存入字典 dynamic_vars[f"g{increment}"] = variable increment += 1 # 取值时直接通过键名访问即可 print(dynamic_vars["g1"])
方案2:直接生成可独立调用的动态变量(不推荐)
如果确实有特殊场景需要生成可以直接调用的独立变量,可以通过Python内置的作用域字典实现:
- 全局作用域下使用
globals()函数:
increment = 1 variable = "测试值" globals()[f"g{increment}"] = variable increment += 1 # 可以直接访问g1变量 print(g1)
- 函数内部局部作用域下,不建议修改
locals()返回值(部分Python版本中修改不会生效),可以通过绑定函数属性实现:
def demo_func(): increment = 1 variable = "函数内部存储的值" demo_func.__dict__[f"g{increment}"] = variable increment += 1 print(demo_func.g1) demo_func()
注意:动态生成独立变量会大幅提升代码维护成本,还会导致静态代码检查工具失效,除非有非常明确的必要性,否则一律优先使用字典方案。
内容的提问来源于stack exchange,提问作者Luke Wilson
相关产品推荐
相关产品推荐

