调用从 Python 中的另一个函数导入其结果的函数
Calling a function that imports its result from another function in Python
我在 Python f1 中有一段代码创建了两个函数,第二个函数从第一个函数获取结果:
a = 3
b = 4
def fS(a,b):
x = a+b
return x
y = fS(a,b)
print(y)
def fM(a,b,y):
z = a*b*y
return z
w = fM(a,b,y)
print(w)
另一个使用这些函数的代码 f2,都是从第一个代码导入的:
from f1 import *
a = 6
b = 4
c = a+1
d = b+1
p = fS(c,d)
print(p)
q = fM(c,d,p)
print(q)
函数fS
给出两个数的和。函数 fM
给出乘以前一个求和结果的乘积。在 f2 中,两个数字都应在第一个函数之前加 1。 运行 f1,它给出 y
和 w
的正确结果:
7
84
但是运行 f2,它给出了f1的结果和f2的结果:
7
84
12
420
结果是正确的,但我的意图是只打印 f2 的结果(p = 12 和 q = 420)当 运行 它而不是前两个结果(7 和 84)时:
12
420
我试图通过在设置a
和b
的值之前在f1中插入语句if __name__ == '__main__':
来解决它,但是得到了一个错误信息:name 'a' is not defined
in y = fS(a,b)
因为 运行 f2 无法读取这些值。我在这里错过了什么?有没有一种方法可以在不创建新文件的情况下做到这一点?
尝试将整个代码包装在 f1 中的 defs 之外。将 f1 更改为此代码后,它应该可以工作。
def fS(a,b):
x=a+b
return x
def fM(a, b ,y):
z=a*b*y
return z
if __name__ == '__main__':
a = 3
b = 4
y = fS(a,b)
print(y)
w = fM(a, b, y)
print (w)
一个解决方案是简单地从 f1
.
中删除 print
函数
如果您仍希望能够打印这些值,但仅在需要时打印,只需在 f1
中创建函数,如下所示:
def printFirstFunction(a, b):
print(fS(a,b))
def printSecondFunction(a, b, y):
print(fM(a,b,y))
并仅在需要打印这些值时调用这些函数。
要解决您编写 main
函数的问题,您也应该提供该代码。您很可能忘记初始化这些变量,或者您在声明它们之前定义了函数,但如果您不向我们展示该代码,我们无法判断。
我在 Python f1 中有一段代码创建了两个函数,第二个函数从第一个函数获取结果:
a = 3
b = 4
def fS(a,b):
x = a+b
return x
y = fS(a,b)
print(y)
def fM(a,b,y):
z = a*b*y
return z
w = fM(a,b,y)
print(w)
另一个使用这些函数的代码 f2,都是从第一个代码导入的:
from f1 import *
a = 6
b = 4
c = a+1
d = b+1
p = fS(c,d)
print(p)
q = fM(c,d,p)
print(q)
函数fS
给出两个数的和。函数 fM
给出乘以前一个求和结果的乘积。在 f2 中,两个数字都应在第一个函数之前加 1。 运行 f1,它给出 y
和 w
的正确结果:
7
84
但是运行 f2,它给出了f1的结果和f2的结果:
7
84
12
420
结果是正确的,但我的意图是只打印 f2 的结果(p = 12 和 q = 420)当 运行 它而不是前两个结果(7 和 84)时:
12
420
我试图通过在设置a
和b
的值之前在f1中插入语句if __name__ == '__main__':
来解决它,但是得到了一个错误信息:name 'a' is not defined
in y = fS(a,b)
因为 运行 f2 无法读取这些值。我在这里错过了什么?有没有一种方法可以在不创建新文件的情况下做到这一点?
尝试将整个代码包装在 f1 中的 defs 之外。将 f1 更改为此代码后,它应该可以工作。
def fS(a,b):
x=a+b
return x
def fM(a, b ,y):
z=a*b*y
return z
if __name__ == '__main__':
a = 3
b = 4
y = fS(a,b)
print(y)
w = fM(a, b, y)
print (w)
一个解决方案是简单地从 f1
.
中删除 print
函数
如果您仍希望能够打印这些值,但仅在需要时打印,只需在 f1
中创建函数,如下所示:
def printFirstFunction(a, b):
print(fS(a,b))
def printSecondFunction(a, b, y):
print(fM(a,b,y))
并仅在需要打印这些值时调用这些函数。
要解决您编写 main
函数的问题,您也应该提供该代码。您很可能忘记初始化这些变量,或者您在声明它们之前定义了函数,但如果您不向我们展示该代码,我们无法判断。