如何从导入的参数依赖脚本调用变量?

时间:2016-08-01 17:06:13

标签: python function import scripting python-import

我刚刚开始使用python作为脚本语言,但我很难理解如何从另一个文件中调用对象。这可能只是因为我对使用属性和方法不太熟悉。

例如,我创建了这个简单的二次公式脚本。

qf.py

#script solves equation of the form a*x^2 + b*x + c = 0
import math
def quadratic_formula(a,b,c):
    sol1 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a)
    sol2 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a)
    return sol1, sol2

因此,在python shell中或从其他文件访问此脚本非常简单。如果我导入函数并调用它,我可以将脚本输出为一组。

>>> import qf
>>> qf.quadratic_formula(1,0,-4)
(-2.0, 2.0)

但我不能简单地从导入的函数中访问变量,例如返回集合的第一个成员。

>>> print qf.sol1
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'sol1'

如果我将名称空间与导入的文件

合并,也会发生同样的情况
>>> from qf import *
>>> quadratic_formula(1,0,-4)
(-2.0, 2.0)
>>> print sol1
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'sol1' is not defined

是否有更好的方法从导入的文件中调用这些变量?我认为sol1&amp; sol2取决于给定的参数(a,b,c)使得调用它们变得更加困难。

1 个答案:

答案 0 :(得分:1)

我认为这是因为sol1sol2是仅在函数中定义的局部变量。你能做的就像是

import qf
sol1,sol2 = qf.quadratic_formula(1,0,-4)
# sol1 = -2.0
# sol2 = 2.0

但此sol1sol2qf.py中的变量不同。