名称错误:全局名称';类对象';不是由PYTHON定义的
我有一个类名称错误:全局名称';类对象';不是由PYTHON定义的,python,Python,我有一个类master.py,带有Glade相关的Gui。我有一个按钮,上面有一个事件。 我只想用另一个类从另一个python文件调用另外两个方法,但NameError:未定义全局名称“Airmong” 错误被抛出 这些文件在同一个文件夹中! master.py文件包含: #!/usr/bin/python # -*- coding: utf-8 -*- from gi.repository import Gtk from airmong import Airmong class Handler
master.py
,带有Glade相关的Gui。我有一个按钮,上面有一个事件。
我只想用另一个类从另一个python文件调用另外两个方法,但NameError:未定义全局名称“Airmong”
错误被抛出
这些文件在同一个文件夹中!
master.py文件包含:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
from airmong import Airmong
class Handler:
airmonObj=Airmong();
def airmon_clicked(self, button):
airmonObj.startAirmong()
builder = Gtk.Builder()
builder.add_from_file("master.glade")
builder.connect_signals(Handler())
window = builder.get_object("window1")
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
#!/usr/bin/python
# -*- coding: utf-8 -*-
class Airmong:
def __init__(self):
pass
def stopAirmong(self):
result = subprocess.check_call(['airmon-ng','stop' ,'wlan0mon'])
if result == 0:
print "Success stopping airmong"
else:
print "CAN'T stop airmong"
def startAirmong(self):
result=subprocess.check_call(['airmon-ng','start','wlan0'])
if result == 0:
print "Success starting airmong"
else:
print "CAN'T start airmong"
airmong.py文件包含:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
from airmong import Airmong
class Handler:
airmonObj=Airmong();
def airmon_clicked(self, button):
airmonObj.startAirmong()
builder = Gtk.Builder()
builder.add_from_file("master.glade")
builder.connect_signals(Handler())
window = builder.get_object("window1")
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()
#!/usr/bin/python
# -*- coding: utf-8 -*-
class Airmong:
def __init__(self):
pass
def stopAirmong(self):
result = subprocess.check_call(['airmon-ng','stop' ,'wlan0mon'])
if result == 0:
print "Success stopping airmong"
else:
print "CAN'T stop airmong"
def startAirmong(self):
result=subprocess.check_call(['airmon-ng','start','wlan0'])
if result == 0:
print "Success starting airmong"
else:
print "CAN'T start airmong"
我做错了什么?非常感谢
错误:
Traceback (most recent call last):
File "./master.py", line 9, in airmon_clicked
airmonObj.startAirmong();
NameError: global name 'airmonObj' is not defined
代码中存在多个错误: Master.py: 1) 在
第4行中
将内容从airmong.py导入airmong
更改为从airmong导入airmong
2) 在第8行中
缩进函数体。函数的示例代码如下所示
class Handler:
airmonObj=Airmong();
def airmon_clicked(self, button):
airmonObj.startAirmong()
airmong.py:
3) 删除第3行中类
关键字前的空格
4) 为init函数添加正文。示例如下所示。查看类
关键字前没有空格
class Airmong:
def __init__(self):
pass
逐步修复所有语法错误。来自airmong.py
?尝试一下airmong
。同样的错误,很抱歉您的文件是airmong.py
还是airmong.py
?尝试从Airmong导入,Airmong
无效。文件是:airmong.py&master.py1)您是否尝试过从airmong导入airmong
-->在master.py
中说这个,而不是从airmong.py导入airmong中说;2) 另外,请尝试正确缩进您的airmong.py
文件内容。检查编辑的帖子。我修复了所有错误(没有第3点…在实际代码中class关键字之前没有空格)。相同的结果修复了Airmong未定义的问题。。。现在未定义airmongObj的错误…是。这是你需要解决的另一个问题airmonObj.startAirmong()
将其替换为self.airmonObj.startAirmong()
。尝试通过@TrulyXax检查代码是否正常工作?用这个补丁。它必须起作用。