2014-02-25 38 views
0

我知道答案可能是微不足道的,但是如何將函數的文件名從另一個函數傳遞到另一個函數?文件名建立在我的函數the_reader中,我想在我的主函數中讀取它。我報告下面的兩個功能。在兩個函數之間傳遞文件名

def the_reader(index, x, y, peak_number): 
    [...] 
    filename = ('file.txt') 
    return filename 
    mat_1 = np.array(mat,numpy.uint16) 
    np.savetxt(filename, mat_1, fmt='%i') 

主要功能:

if __name__ == '__main__': 
    [...] 
    the_reader(index, x, y, peak_number) 

然後在主如果我型我print filename得到了錯誤:NameError: name 'filename' is not defined。我究竟做錯了什麼?

+0

the_reader()函數返回的文件名可變的,所以如果你'打印(the_reader(指數,X,Y,peak_number))'要打印的返回值。 – Trimax

回答

2

您的代碼有幾個問題。首先,你應該在函數結尾處放置返回值。當python遇到返回時,它返回並且不會執行後面的行。

其次,你不能只是返回一個值,你需要將它分配給一個變量才能使用它。

所以正確的方法是:

def the_reader(index, x, y, peak_number): 
    [...] 
    filename = ('file.txt') 
    mat_1 = np.array(mat,numpy.uint16) 
    np.savetxt(filename, mat_1, fmt='%i') 
    return filename 

if __name__ == '__main__': 
    [...] 
    filename = the_reader(index, x, y, peak_number) 
相關問題