基本的python模块设计问题

时间:2009-11-25 17:36:44

标签: python

我有:

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的方式来处理我称之为包全局变量的东西?

1 个答案:

答案 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)