我有一個很多Python文件的項目。某些文件中有一定數量的變量,我喜歡在其他文件中使用。例如,如果在Python中的文件之間共享變量的最簡單方法?
var=10
在f1.py
定義,什麼是我可以調用/使用其他文件"var"
不使用from f1 import var
方式?
我試過使用global
,但它不適用於所有文件。 謝謝!
我有一個很多Python文件的項目。某些文件中有一定數量的變量,我喜歡在其他文件中使用。例如,如果在Python中的文件之間共享變量的最簡單方法?
var=10
在f1.py
定義,什麼是我可以調用/使用其他文件"var"
不使用from f1 import var
方式?
我試過使用global
,但它不適用於所有文件。 謝謝!
您可以用名稱範圍做到這一點:
import f1
print(f1.var)
10
f1.var = 20
那麼就應該改變所有文件var
這是使用變量,import
。
謝謝,但我得到一個錯誤「AttributeError:'module'object has no attribute'var'」。由於有很多變量,如果有更好的方法調用「var」而不是「f1.var」 」。再次感謝 – Curiosity
你可以用'var = f1.var'重新分配它。但是,你可以在當前文件中使用它,但是如果你修改它,只在該文件中改變的變量不在文件f1中 –
這不會改變除鍵入導入行的文件以外的任何地方的值。 -1 –
在一個文件中聲明所有全局變量,即my_settings.py
,然後在其他腳本中聲明import
。
看到這個問題,它是公認的答案的詳細信息: Using global variables between files in Python
大多數我遇到的這個問題,我用不同的方法的時代:
所以當程序啓動時,這個類被實例化,然後傳遞給不同的模塊。這也使得它靈活,因爲當你爲這個類添加一個額外的字段時,不需要改變任何參數。
class session_info:
def __init__(self, shared_field1=None, shared_field2=None ....):
self.shared_field1 = shared_field1
self.shared_field2 = shared_field2
def function1(session):
session.shared_field1 = 'stilton'
def function2(session):
print('%s is very runny sir' % session.shared_field1)
session = session_info()
function1(session)
function2(session)
應打印: 「斯蒂爾頓奶酪是非常鬆軟先生」
爲什麼你不想使用'import'? – BrenBarn
而不是暴露一個變量,而是考慮使用setter和getter函數。看一下'property()'內置函數,它給用戶一個訪問變量的錯覺。 – cdarke