如何从python中的另一个程序调用main函数内的变量?

时间:2016-10-16 14:01:08

标签: python

我有两个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()方法中的变量

2 个答案:

答案 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