我在 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
我試圖通過if __name__ == '__main__':在設定aand的值之前在 f1 中插入陳述句來解決它b,但收到一條錯誤訊息:name 'a' is not definediny = fS(a,b)因為無法通過運行 f2 來讀取這些值。我在這里錯過了什么?有沒有辦法在不創建新檔案的情況下做到這一點?
uj5u.com熱心網友回復:
嘗試在 f1 中將 defs 之外的整個代碼包裝在 if 中。將 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)
uj5u.com熱心網友回復:
一種解決方案是簡單地print從f1.
如果您仍然希望能夠僅在需要時列印這些值,只需f1像這樣創建函式:
def printFirstFunction(a, b):
print(fS(a,b))
def printSecondFunction(a, b, y):
print(fM(a,b,y))
并僅在需要列印這些值時呼叫這些函式。
要解決您撰寫main函式的問題,您也應該提供該代碼。很可能您忘記了初始化這些變數,或者您在宣告它們之前定義了函式,但是我們無法判斷您是否沒有向我們展示該代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363909.html
