2017-03-23 71 views
0

我是python的新手。作爲我的項目的一部分,我正在使用python2.7。我正在處理python中的多個文件。在這裏,我面臨的一個問題是,從我已經導入到當前文件中的另一個文件中使用特定函數的變量。 請幫我實現這一點。你有如何從python中的另一個文件中的函數訪問變量

file1.py 
class connect(): 
    # Contains different definitions 
    def output(): 
     a = "Hello" 
     data = // some operations 
     return data 

file2.py 
from file1 import * 
# Here I need to access both 'a' and 'data' variable from output() 
+4

這不是Python;即使你修正了顯而易見的語法錯誤,所有這些變量對於它們的方法都是本地的。請發佈真實的代碼。 –

+0

我很抱歉錯誤的語法。現在我改變了代碼。 – sowji

回答

1

所以,你必須自從我開始寫約會以來,我編輯了很多,所以我又重新開始了。

首先,你的回報話說出來壓痕,應該咬入輸出方法。

def output(): 
    a = "Hello" 
    data = // some operations 
    return data 

其次,在Python關於類名的約定是駝峯,這意味着你的類應該被稱爲「連接」。當你的類沒有繼承任何東西時,也不需要添加圓括號。

第三,現在你只能因爲只返回數據使用「數據」。你可以做的是通過更換您的return語句這個返回A和數據:

return a, data 

然後在你的第二個文件,所有你所要做的就是寫a_received, data_received = connect.output()

完整的代碼示例:

file1.py

class Connect: 

    def output(): 
     a = "Hello" 
     data = "abc" 
     return a, data 

file2.py

from file1 import Connect 

a_received, data_received = Connect.output() 

# Print results 
print(a_received) 
print(data_received) 

第四,要解決這個問題,例如像創建實例變量,然後就沒有必要退貨等方式。

file1.py

class Connect: 

    def output(self): 
     self.a = "Hello" 
     self.data = "abc" 

file2.py

from file1 import Connect 

connection = Connect() 
connection.output() 

print(connection.a) 
print(connection.data) 

也有類變量版本。

file1.py

​​

file2.py

from file1 import Connect 

Connect.output() 

print(Connect.a) 
print(Connect.data) 

最終, 「正確」 的方式做到這一點取決於所使用的。

+1

非常感謝,對我有幫助。 – sowji

0

一種選擇是將返回所有您從功能需要的數據:

file1.py

class connect(): 
    # Contains different definitions 
    def output(): 
     a = "Hello" 
     data = // some operations 
     return a,data # Return all the variables as a tuple 

file2.py

from file1 import connect 
c = connect() 
a,data = c.output() 
# Now you have local variables 'a' and 'data' from output() 
相關問題