繁体   English   中英

Python类对象与“ self”相同

[英]Python class object same as “self”

我有基于QT的GUI,其中从文本文件读取LineEdit的内容。 GUI由一个类表示(用户选择了许多这样的GUI),而我想在类之外保留读取和显示的功能。 因此,为此,我创建了所述类的对象,并将其传递给外部函数。 但是,它不会在GUI的分配框中显示从文件读取的单词。 此外,当我将对象等同于self ,仅显示文本。 以下是代码片段。

class MainClass(QtGui.QWidget, Ui_MyClass):
        def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)

    def fillBoxes(self):
        self.messageBox.setText("Reading File !!")
        time.sleep(2)
        classObj = MainClass()  # object
        print "entering func.." 
        ret = readFile(classObj,'REX011')
        print self, classObj

def readFile(resClass,res):
    ......functioning related to file read....
    .....
    resClass.messageBox.setText("File Read Complete!!")   # No display

上面的print语句的控制台输出会产生

<myFile.MainClass object at 0xb36682b4>

<myFile.MainClass object at 0xb36ac26c>

selfobjClass位置不同。 为什么会这样呢? 不应将它们放在一起,以便显示所有消息。 是否可以在相同的类定义中创建该类的对象? 而不是做:

classObj = MainClass()  # object
ret = readFile(classObj,'REX011')

我可以安全地这样做吗?

ret = readFile(self,'REX011')

classObj = MainClass() # object将创建另一个新的MainWindow()实例。 那不是你所需要的。 ret = readFile(self,'REX011')应该做你所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM