在Python + Pylons中创建一个全球可访问的函数

0 投票
2 回答
1007 浏览
提问于 2025-04-15 19:52

我在使用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

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答