在下面分享的python代码中获取Name Error:
。我是Python的初学者。
from PyQt4 import QtGui, QtCore
import sys
import I2CGenericFrame
import os
class I2CApp(QtGui.QMainWindow, I2CGenericFrame.Ui_winI2CMain):
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi(self)
self.cmbBusListBox.addItem("Slect ..")
出现以下错误。
Traceback (most recent call last):
File "I2cMain.py", line 6, in <module>
class I2CApp(QtGui.QMainWindow, I2CGenericFrame.Ui_winI2CMain):
File "I2cMain.py", line 12, in I2CApp
self.cmbBusListBox.addItem("Slect ..")
NameError: name 'self' is not defined
指导我,提前致谢。
答案 0 :(得分:1)
self
是一个参数,就像在方法中传递的任何其他参数一样。它在方法之外的类体中没有任何意义。
您可以通过修复缩进来解决此问题,以便在__init__
方法中引用它:
class I2CApp(QtGui.QMainWindow, I2CGenericFrame.Ui_winI2CMain):
def __init__(self):
super(I2CApp, self).__init__()
self.setupUi(self)
self.cmbBusListBox.addItem("Slect ..")
编辑:如评论中所示,您还应该明确地使用类调用super
,以避免无限递归的可能性。
答案 1 :(得分:0)
当您从对象调用变量时,变量self
会自动传递给方法。您的代码行self.cmbBusListBox.addItem("Slect ..")
未包含在类的方法中,因此它不知道self
是什么。这可能是缩进错误。您打算将其置于__init__
下吗?