在Python + Pylons中创建一个全球可访问的函数
我在使用pylons 0.9.7的时候,想写一个函数,用来按需连接数据库。我希望这个函数能在所有模型类的所有函数中都能使用。
在model/__init__.py
文件里,我写了:
#Establish an on-demand connection to the central database
def connectCentral():
engine = engine_from_config(config, 'sqlalchemy.central.')
central.engine = engine
central.Session.configure(bind=engine)
这个函数现在可以在任何地方使用了。但是,当我尝试在model/class.py
文件中的一个类里运行它时,却返回了:
NameError: global name 'connectCentral' is not defined
我需要做什么特别的导入吗?有没有更好的方法来实现这个?
谢谢。
2 个回答
1
你有没有做过 import init
呢?或者说 from init import connectCentral
?
如果你做过,那这个名字应该是已经定义过的。如果没有,你可以试着在方法的主体里面写 global connectCentral
,不过我觉得这只是用来处理全局变量的。
你确定这个模块的名字应该是 init.py 而不是 __init__.py 吗?能不能发一些你尝试使用这个函数的代码?
编辑
所以你有 __init__.py
,很好。你是用 from model import connectCentral
来导入吗?你有没有遇到循环导入的问题(比如在 class.py
中从 __init__.py
导入,然后在 __init__.py
中又从 class.py
导入)?
2
from model import connectCentral
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。