【问题标题】:Function that renames variables [closed]重命名变量的函数[关闭]
【发布时间】:2022-11-04 23:53:08
【问题描述】:

我想做的事:

定义函数(A,B):

thingS=复杂处理*B

功能(一,二)

thingone=复杂的处理*2

已经有一个名为“在 python 中,使用函数的参数重命名变量”的问题,但我无法理解。

基本上每次使用该函数时,我都需要生成变量。

【问题讨论】:

  • 在大多数情况下,您不应该这样做。
  • 如果变量是包范围的,你能够用一些聪明的反射工具来做这件事,虽然你真的不应该.对于局部变量,这是不可能的,因为编译器会特别对待它们。
  • @j1-lee 每次使用函数时都可以生成变量吗?这似乎是一个非常基本的功能
  • “我基本上每次使用函数时都需要产生变量。”不,您几乎可以肯定不需要这样做,也不应该这样做
  • 如果你需要产生一个变量,那么从函数中返回一些东西,并在调用者中将一些变量分配给那个值。困难是什么?

标签: python


【解决方案1】:

实际上,您的编程方式并不是一个好习惯,所以我建议您重新设计它。但是 exec 是你需要的。了解此功能可能对以后有所帮助。您可以从字符串运行一行代码。

def define_var(var, value):
    exec(f'myVar_{var} = {value}', globals())

define_var('one', 2)

print(myVar_one) # 2

【讨论】:

  • 每个人都说 OP 正在尝试使用 exec 函数,但我认为他们可能会使用 dict 结构。至少我认为这样可能是可行的。
  • 是的,一个字典就可以了。
猜你喜欢
  • 2020-04-02
  • 2014-03-29
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多