我是編程方面的新手。去那裏直接開火。現在我要列出三個代碼模塊:Python - 嘗試使用不同模塊中某個模塊的名稱的值
def GCD(x,y):
#gives the Greatest Common Divisor of two values.
while y != 0:
r = x
while r >= y: #these two lines are used to
r -= y #calculate remainder of x/y
x = y
y = r
print x
這是我寫的基於歐幾里德算法GCD的原始程序。它的功能正確。我現在要除去上述兩個註釋行和與呼叫更換另一模塊I製成,其中計算餘數:
剩餘計算器
def xy(x, y):
#Gives the remainder of the division of x by y. Outputs as r.
while x >= y:
x -= y
r = x
該程序還正常工作。 我想在我編輯的程序中使用名稱'r'的值。我曾嘗試下面做到這一點,但它會導致問題:
def GCD(x,y):
import remainder
#gives the Greatest Common Divisor of two values.
while y != 0:
remainder.xy(x,y)
from remainder import r #here is the problem. This line is my attempt at
#importing the value of r from the remainder calculating
#module into this module. This line is incorrect.
x = y
y = r #Python cannot find 'r'. I want to use the value for 'r' from the execution
#of the remainder calculating module. Attempts to find how have been
#unsuccessful.
print x
我需要找出如何在我的第二個GCD模塊使用「R」的計算值從我的XY模塊。我曾嘗試使用
global r
在我的模塊,雖然我沒有成功。我不確定我是否正確解釋了「全局」的功能。
我將不勝感激您的幫助。
噴氣霍爾特
爲什麼不只是有你的剩餘函數返回'r',而不是試圖設置呢? –
'global'爲名稱提供了一個模塊級的範圍,而不是絕對的全局範圍。所以是的,你誤解了它的功能。返回'r'而不是設置它。如果你能幫到你,你不應該使用'global'。 – 2rs2ts
謝謝,回報做了我想要的。正如我所提到的,我是一個完全新手,並沒有意識到「返回數據」的目的。噴射霍爾特。 –