2017-07-03 19 views
1

我有下面的代碼,我有興趣在另一個python文件中使用fqdm_or_ip變量。使用另一個python文件中的變量

這個文件是menu.py

def CONN_PARAMS(): 
    print("1. FQDN") 
    print("2. IP ADDRESS") 
    fqdn_or_ip = input("Are you going to use an IP or FQDN for the controller") 
    if fqdn_or_ip == 1: 
     controller = input("Enter FQDN or IP address" ) 
     print("Are you sure this is correct? " + controller) 

    elseif (fqdn_or_ip) == 2): 
     controller = input("Enter FQDN or IP address"): 

我使用下面的代碼,但我不能確定如何移動文件之間的變量...一旦menu.py收集回答我的問題的其他蟒蛇文件將開始使用該信息。

這個文件是我試圖把變量拉入....我想我應該將變量傳遞給menu.CONN_PARAMS的(),但我不確定如何。

#!/usr/bin/python3 

# import requests module for REST API calls 
import requests 

# import json module 
import json 

# menu.py 
import menu 

menu.CONN_PARAMS() 

最佳,

+0

您的代碼似乎是語法不正確。你運行過嗎?而且,像傳統手法一樣傳遞全局變量是一個壞主意。你應該考慮從函數中返回這些值。 –

+1

'fqdn_or_ip'似乎是一個局部變量。你可以將變量作爲參數傳遞給其他函數嗎? – Tobias

+0

@cᴏʟᴅsᴘᴇᴇᴅ可能會因爲我缺乏經驗而錯誤地設計它。我想分離所有用戶交互...輸入...從將使用該數據的程序部分。菜單會引導用戶回答問題,而另一個文件將對答案採取行動......聽起來像是一個壞主意。菜單收集數據,另一個文件將執行其餘的API函數。 – Dan

回答

3

你可以回到你有興趣從功能正在呼叫的價值。

如果您對多個值感興趣,您還可以返回元組/列表/字典/ ...而不是單個值。

menu.py

def CONN_PARAMS(): 
    print("1. FQDN") 
    print("2. IP ADDRESS") 
    fqdn_or_ip = input("Are you going to use an IP or FQDN for the controller") 
    # ... whatever you need to do 
    return fqdn_or_ip 

other_file.py

# menu.py 
import menu 

fqdn_or_ip = menu.CONN_PARAMS() 
相關問題