全球名称';类别';未定义-Python
我在一个名为全球名称';类别';未定义-Python,python,Python,我在一个名为Parser.py的文件中定义了一个名为Parser的类,用于解析测试结果 import sys import re class Parser: def __init__(self): pass def udp_parse(self, filename=""): # ... some code over here 现在,在main.py中。我有: from dbconn import * from parser import *
Parser.py
的文件中定义了一个名为Parser
的类,用于解析测试结果
import sys
import re
class Parser:
def __init__(self):
pass
def udp_parse(self, filename=""):
# ... some code over here
现在,在main.py
中。我有:
from dbconn import *
from parser import *
import os
import subprocess
def main()
dbconn = Dbconn()
parse = Parser()
# more code here ...
if __name__ == '__main__':
main()
我得到:
Traceback (most recent call last):
File "iperf.py", line 108, in <module>
main()
File "iperf.py", line 49, in main
parse = Parser()
NameError: global name 'Parser' is not defined
回溯(最近一次呼叫最后一次):
文件“iperf.py”,第108行,在
main()
文件“iperf.py”,第49行,主
parse=Parser()
NameError:未定义全局名称“Parser”
parser.py
与dbconn.py
和main.py
位于同一目录中Dbconn()
可以正常工作,但我不明白为什么Parser()
不能正常工作 解析器是现有的。使用其他文件名(不是parser.py)或在stdlibs之前的sys.path中插入路径
import sys
sys.path.insert(0,'parser/directory')
from parser import *
解析器是一个现有的。使用其他文件名(不是parser.py)或在stdlibs之前的sys.path中插入路径
import sys
sys.path.insert(0,'parser/directory')
from parser import *
更改文件名可以吗?@philippe是的,应该可以。只要它不与另一个python模块共享名称。更改文件名就可以了?@philippe是的,应该可以。只要它不与另一个python模块共享名称。