如何在__init__.py中运行代码

时间:2011-11-16 06:17:56

标签: python

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 个答案:

答案 0 :(得分:3)

从导入表单使用时,必须在没有模块前缀的情况下调用函数。 只需通过名字调用函数和属性。

from webprofiles import *

for x in text:
    a= match(x)

但我建议不要使用通配符('*')导入。 请改用:

from webprofiles import match

for x in text:
    a= match(x)

答案 1 :(得分:1)

语法from x impoort *意味着所有内容实际上都会导入到全局命名空间中。您想要的是import webprofiles后跟webprofiles.matchfrom webprofiles import *,然后调用普通match

答案 2 :(得分:1)

只需导入webprofiles,而不是*:

import webprofiles

for x in text
    a = webprofiles.match(x)

答案 3 :(得分:0)

你有什么在我看来2个文件,你想运行一个文件,导入其他文件中包含的方法:

import /webprofiles/init


init.match(x)
修改问题后

import /webprofiles/__init__


__init__.match(x)
当你导入东西时

btw:

import my_file #(file.py)

my_file.quick_sort(x)

^^^^^^你必须调用myfile,因为你通常称之为对象

from my_file import *
#that is read as from my_file import everything
#so now you can use the method quick_sort() without calling my_file
quick_sort(x)