【发布时间】:2019-10-23 09:19:19
【问题描述】:
我正在尝试从 python 文件中获取一个字符串变量并在另一个 python 文件中使用它。即使我可以打印它,它似乎也无法识别新导入的变量。
我正在运行 python 3.6.4。如果我手动编写字符串,代码会运行并且不会进入异常。
变量名.py
first='equilibrium'
file2.py
import variable_name
print(variable_name.first)
try:
input.variable_name.first.get()
variable_name.first = input.variable_name.first
except:
print("The equilibrium IDS is absent from the input datafile")
print("----> Aborted.")
exit()
如果我尝试手动设置“平衡”,则代码不会进入异常。但是,如果我从 variable_name.py 中读取它,它会给我一个例外。
【问题讨论】:
-
input.variable_name.first.get()- 你到底想在这里做什么?因为它没有任何意义。 -
我正在尝试检索“平衡”树结构并将其保存在一个名称下,为了保持一致性,我也将其称为平衡
-
当我使用 input.equilibrium.get() 运行代码时,代码可以工作,但我不知道为什么当我使用第一个文件中保存在变量中的字符串 'equilibrium' 时,它给了我一个异常
-
input是您代码中其他地方定义的对象吗?如果是这样,您不应该这样做,因为您正在覆盖内置的input函数。但更重要的是,您应该分享这一点,因为有必要重现您所看到的特定问题。如果看起来真正的问题是使用变量作为属性名称,请查找getattr。 -
问题是我的代码在集群上,并且有几个模块正在运行,包括“输入”定义,因此您无法重现错误。我的问题不在于代码本身,因为正如我所说,当我将“平衡”直接放入第二个文件时,它运行得非常好。我的总体目的是制作另一个包含变量列表的简单 python 文件。 'first='equilibrium'' 等变量的值将由用户替换,以便更轻松地运行大约 600 行的主代码。