如何在 __init__.py 中运行代码
在 src/webprofiles/__init__.py
文件里,我有以下内容:
def match(string)
现在我想从 `src/python.py` 文件里调用这个匹配,那个文件里包含:
from webprofiles import *
for x in text
a= webprofiles.match(x)
但是它给我报错了。
NameError: global name 'webprofiles' is not defined
4 个回答
1
只需要导入 webprofiles,而不是 *。
import webprofiles
for x in text
a = webprofiles.match(x)
1
这段代码 from x import *
的意思是把所有东西都导入到全局命名空间里。你其实想要的是先写 import webprofiles
,然后再用 webprofiles.match
,或者是写 from webprofiles import *
,然后直接调用 match
。
3
当你使用“from import”这种方式时,你可以直接调用函数,而不需要加上模块的前缀。也就是说,你可以直接用函数的名字来调用它们。
from webprofiles import *
for x in text:
a= match(x)
不过我建议不要使用通配符('*')导入。可以用下面这种方式:
from webprofiles import match
for x in text:
a= match(x)