【发布时间】:2021-11-19 11:17:32
【问题描述】:
我在 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__': 来解决它,但收到错误消息:y = fS(a,b) 中的name 'a' is not defined,因为这些值无法读取运行 f2。我在这里想念什么?有没有一种方法可以在不创建新文件的情况下做到这一点?
【问题讨论】:
-
删除 f1 中的
print调用。 -
@AbdurRakib 这不完全是答案,从那时起他会失去直接运行 f1 时打印结果的能力