2012-07-11 49 views
0

我想知道如何在Python中的模塊之間傳遞值。在Python中的模塊之間傳遞值

在generate_image.py我:

def gerenate_image(fr,to,lat1,lon1,lat2,lon2): 
    output_image_name = spatial_matrix.plot_spatial_data(data_array,data_array.shape[0],data_array.shape[1],float(lon1)/10000,float(lon2)/10000,float(lat1)/10000,float(lat2)/10000,fr,to) 
return() 

在overlay.py,我想用 「output_image_name」,所以我嘗試:

import generate_image 

def overlay(): 
    overlay = generate_image.output_image_name 
    .... 

,但沒有奏效。那麼我如何檢索output_image_name的值呢?謝謝。

+2

這是那些我建議你閱讀[Python的教程]情形之一的(HTTP://docs.python .org/tutorial /)從封面到封面。 – 2012-07-11 08:38:04

回答

4

讓你的函數返回一些東西。

def generate_image(fr,to,lat1,lon1,lat2,lon2): 
    return spatial_matrix.plot_spatial_data(data_array,data_array.shape[0],data_array.shape[1],float(lon1)/10000,float(lon2)/10000,float(lat1)/10000,float(lat2)/10000,fr,to) 

然後在其他地方輸入調用函數。

from yourmodule import generate_image 

def overlay(): 
    background = generate_image(*args) # Or what ever arguments you want. 
+0

謝謝你的回答!但現在的問題是,generate_image中的參數涉及很多其他模塊,我必須將它們全部導入..有一種更簡單的方法可以在gerenate_image.py中傳遞「output_image_name」的值嗎? – oops 2012-07-12 03:54:56

+0

不是真的..... – 2012-07-12 08:40:18

1

overlay.py

def gerenate_image(fr,to,lat1,lon1,lat2,lon2): 
    return spatial_matrix.plot_spatial_data(...) 

generate_image.py

import generate_image 

def overlay(): 
    overlay = generate_image.generate_image(...) 
+0

您的最後一行有語法錯誤^^ – 2012-07-11 08:40:56

+0

您是指'(...)'? – 2012-07-11 08:43:34

+0

是的,並在'overlay = generate_image.generate_image()'它期待6個參數,你沒有給它。 – 2012-07-11 08:44:10