【问题标题】:Why it is not possible to import a variable from a module by using string operators?为什么不能使用字符串运算符从模块导入变量?
【发布时间】:2023-01-19 22:39:23
【问题描述】:

我有一个 python 脚本中的水果变量列表:

变量脚本.py:

variableColorApple = "Red"
variableWeightApple = ["5", "6", "7"]
variablePriceApple = ["10", "15", "20"]
variableColorApple = "Orange"
variableWeightOrange =["8", "9", "10"]
variablePriceOrange =["10", "15", "20"]
#...

我还有另一个脚本,我在其中使用用户输入(用户的水果选择)来运行我的分析。 我只想编写一个脚本,无论用户选择什么水果,我都可以运行它。所以我可以避免 if else 语句和长脚本。

我以为我可以使用字符串运算符来导入变量,但是使用字符串运算符 python 在 VariableScript 模块中找不到变量。我还能尝试什么?

我也已经尝试过 operator.getattr()。但是后来我无法访问 gettattr() 中的项目。

只是为了保持简单和可执行:假设用户的输入是“Apple”,我只想从 VariablesScript.py 打印苹果的颜色。我的代码是:

from VariableScript import VariablesScript as Variables

userInput = "Apple"
print(Variables.variableColor + UserInput)`

知道如何在不实际写苹果的情况下获得颜色或苹果吗?...

【问题讨论】:

  • 听起来您需要一个以字符串作为键的 dict
  • dict 也可以像variableColorApple = "Orange" 一样防止面部手掌
  • question 的答案有帮助吗?
  • Variables.variableColor + UserInput 将获取 Variables.variableColor 的值,然后根据它是什么数据类型,使用 UserInput 调用其 __add__(self, other) 函数。在这种情况下,它要么追加字符串,要么抛出 ValueError
  • 这回答了你的问题了吗? How do I create variable variables?

标签: python python-import string-operations


【解决方案1】:

你好,正如别人所说,使用字典,我写这个作为一个例子:

Fruits =   {
  "apple" : {
          "variableColorApple" : "Red",
          "variableWeightApple" : ["5", "6", "7"],
         "variablePriceApple" : ["10", "15", "20"],
          "variableWeightOrange" : ["8", "9", "10"],
         "variablePriceOrange" : ["10", "15", "20"]
  }
}
fruit ="apple"
print(Fruits[fruit]["variableColorApple"])

我不使用很多 python 但希望它仍然有帮助

【讨论】:

    猜你喜欢
    • 2019-11-28
    • 2020-10-05
    • 1970-01-01
    • 2017-02-09
    • 2015-05-31
    • 1970-01-01
    相关资源
    最近更新 更多