我有:
lib/
lib/__init__.py
lib/game.py
在__init__.py
我想定义一个可由lib内的任何类访问的变量,如下所示:
BASE = 'http://www.whatever.com'
然后在game.py中,在Game类中访问它:
class Game:
def __init__(self, game_id):
self.game_id = game_id
url = '%syear_%s/month_%s/day_%s/%s/' % (lib.BASE, year, month, day, game_id)
是的,'lib.BASE'是不对的 - 这里的惯例是什么?是否有一种更整洁,更pythonic的方式来处理我称之为包全局变量的东西?
答案 0 :(得分:4)
请参阅http://docs.python.org/tutorial/modules.html#intra-package-references
所以你可以有一个包含
行的lib/settings.py
文件
BASE = 'http://www.whatever.com'
然后说
from settings import *
在game.py
中,您应该可以写
url = '%syear_%s/month_%s/day_%s/%s/' % (BASE, year, month, day, game_id)