我有两个python文件first.py和second.py
first.py看起来像
def main():
#some computation
first_variable=computation_result
second.py看起来像
import first
def main():
b=getattr(first, first_variable)
#computation
但我收到No Attribute错误。有没有办法在first.py中通过second.py?
访问main()方法中的变量答案 0 :(得分:3)
您应该使用函数调用并返回值而不是此。
从第一个文件中的函数返回calculate_result,然后将结果存储在第二个文件中的b变量中。
first.py
def main():
# computation
return computation_result
second.py
import first
def main():
b = first.main()
其他选项是在第一个文件中使用全局变量,您将在该文件中存储该值,然后将其引用。
答案 1 :(得分:1)
您需要阅读教程中的9.1 and 9.2和语言参考中的Naming and Binding。
在您的示例first_variable
中,first.main()
的本地范围内只有存在 - 正在执行时。除了该范围之外的任何东西都无法访问它。
您需要first_variable
进入first
的全局范围 - 然后在second
中,您可以将其与first.first_variable
一起使用。
一种方法是从first.main()
返回一些内容并将其分配给first_variable
。
def main():
return 2
first_variable = main()
然后在second
中你可以使用它:
import first
times_3 = first.first_variable * 3