2015-06-22 46 views
0

我來自帶有靜態變量的Java背景,我試圖在我的python應用程序中創建一個常用字符串列表。據我所知,在Python中沒有靜態變量,所以我寫了一個模塊如下:python模塊中的變量是如何工作的?

import os 

APP_NAME = 'Window Logger' 
APP_DATA_FOLDER_PATH = os.path.abspath(os.environ['APPDATA'])+'\\%s' % APP_NAME 
CURRENT_SESSION_NAME = 'session_1' 
CURRENT_SESSION_XML_PATH = APP_DATA_FOLDER_PATH + '\\%s%s' % (CURRENT_SESSION_NAME, '.xml') 

這是存儲在python字符串能夠接受的方式?

+3

如果它們被期望是'static const',那就沒問題。 – bereal

回答

0

該約定是將模塊中的常量聲明爲以大寫形式寫入的變量(Python風格指南:https://www.python.org/dev/peps/pep-0008/#global-variable-names)。

但是在導入模塊時,沒有辦法阻止其他人重新聲明這樣的變量 - 從而忽略約定。

有由from ... import *導入模塊時解決此兩種工作方式:

  • 使用與該should't出口
  • 不斷下劃線開頭的名稱來定義的常量列表__all__以及應該公開的功能(因此排除不包含在__all__列表中的所有對象)
0

如果您需要定義一個常量,它是靜態的,它應該在模塊級進行,並用下劃線分隔全部大寫,如下所示:

https://www.python.org/dev/peps/pep-0008/#constants

總之,是的,沒關係。

Pep8爲Python代碼推薦了風格和約定,我強烈建議您遵循。

+0

謝謝,我將通讀文檔 – user2145312

相關問題