1
我有一個Python龍捲風應用程序。我想要有多個文件共享的變量。以前我曾經用python文件名global.py聲明並啓動它們並將其導入到其他文件中。這是一個好主意,直到我的一些變量需要從數據庫中進行查詢,所以每次我導入global.py只獲取一個值時,所有查詢都在運行並導致我的應用程序變慢。
下一步是我定義我的變量在龍捲風start.py這樣的:Python龍捲風全局變量
class RepublishanApplication(tornado.web.Application):
def __init__(self):
##################################################
# conn = pymongo.Connection("localhost", 27017)
self.Countries = GlobalDefined.Countries
self.Countries_rev = GlobalDefined.Countries_rev
self.Languages = GlobalDefined.Languages
self.Categories = GlobalDefined.Categories
self.Categories_rev = GlobalDefined.Categories_rev
self.NewsAgencies = GlobalDefined.NewsAgencies
self.NewsAgencies_rev = GlobalDefined.NewsAgencies_rev
self.SharedConnections = SharedConnections
我可以訪問這些變量的處理程序是這樣的:
self.application.Countries
它的工作好。但問題是我只能在處理程序類中訪問這些變量,如果我想訪問它們,我必須將它們傳遞給函數。我認爲這不是一個好主意。你有什麼建議可以在每個地方訪問這些變量,而不必將應用程序實例傳遞給我的所有函數,甚至是另一種方式來幫助我?
感謝您的回覆,但我認爲這是不正確的。我有一些需要每30秒運行一次的文件。所以每30秒就會執行一次Globals.py,然後會有很多查詢。我使用Profiler監視了這一點。你有其他想法嗎? –
那麼你想在Python解釋器的調用之間存儲變量嗎?在這種情況下,請將它們存儲在本地磁盤上的文件中,或者在下次運行Python時再次從數據庫中查詢它們。 –