好伙伴们,
我有这种奇怪的行为。任何帮助,将不胜感激。
这是一个名为tankython的模块中的函数,它从一个名为usual的模块调用一个函数。但是,看起来Python拒绝识别该功能。这是代码
#tankython.py
from usual import *
from get_data import *
from settings import *
from actif_class import *
def tanking(list_spreads,settings):
#### Tanking ####
fenetre = settings.fenetre
list_spread_exit,list_spread_temp= [],[]
ii= 0
for spread in list_spreads :
avc = ii * 100/float(len(list_spreads))
print "Be patient. Tanking in progress..." , avc,"%"
info = tankython (list_spreads,fenetre,ii)
list_spread_temp.append(info)
ii = ii + 1
list_spread_exit = check_list(list_spread_temp)
return list_spread_exit
#usual.py
def check_list(list_entry):
i = 0
while i < len(list_entry):
if list_entry[i] == 0 :
list_entry.pop(i)
else :
i = i+ 1
return list_entry
这是我发现错误消息,因为我要求Py从ordinary.py导入所有内容:
File "tankython.py", line 77, in tanking
list_spread_exit = check_list(list_spread_temp)
NameError: global name 'check_list' is not defined
最后一件事:最终,如果我将函数放在tankython模块中,那么Py接受整个过程。但是我真的想知道我在这里做错了什么。
干杯球员
答案 0 :(得分:1)
尝试将文件tankython.py和ordinary.py放在相同文件夹中并使用
from usual import check_list
而不是
from usual import *
可能有帮助。 或者你可以试试:
import usual
然后更改代码:
usual.check_list()
并且
from module import *
如果两个包具有相同的名称函数,不是导入内容的好方法。
答案 1 :(得分:0)
我找到了另一个解决方案,虽然它不是最优秀的解决方案,特别是因为它没有解释出现了什么问题。但是,我通常用f_usual重命名了整个模块,它工作得很好。
感谢您的帮助