我在将一个类实例中定义的变量传递到另一个类实例时遇到问题。我对使用类比较陌生,但据我所知,变量可以通过简单地定义为类实例的一部分(例如在下面的示例中)从一个实例传递到另一个实例。虽然我以前使用过这个模型,但我从未尝试过使用像wxPython这样的GUI框架来实现这一点。class Foo(object):
def __init__(self, var):
self.var = var
class Bar(object):
def do_something(self, var):
print var*3
if __name__ == '__main__':
f = Foo(3)
b = Bar()
b.do_something(f.var)
我遇到的问题是wxPython实例似乎是预定义的,不接受任何附加参数(允许我只向类实例传递标题、大小等内容)。
我面临的另一个问题是,我试图通过调用一个对话框窗口来深入传递变量三个类,并从对话框中调用一个单独的类来启动一个工作线程。
所以我的问题是:如何将变量从一级实例传递到三级实例?
如何重写wxPython实例以允许定义其他变量?
或者,是否可以创建自定义事件处理程序来传递必要的数据?
澄清。。。
我正在使用Python,我想我理解使用类和带有Tkinter和wxPython(在这个项目中使用)框架的GUI编程的基本原理。我已经编写了一个从用户那里获取一些数据的主类/实例,我希望能够传递self.main_instance_var中存储的信息,并将其传递给第二个类/实例(在本例中,是从第一个类调用的进度对话框窗口)。
当我试图在进度对话框中使用上述模型时,出现了一个非常不格式化的语法错误(“关键字arg之后是非关键字arg”)。阻止我进一步将变量从“进度”对话框窗口传递到工作线程。如果我得到一个异常,那将是一件事,但语法错误我不明白。下面是一个简短的例子:class ProgressDialog(wx.Dialog):
def __init__(self, parent, title, myVar): # Generates syntax error on this line
super(ProgressDialog, self).__init__(parent=parent,
title=title, size=(500, 110))
self.var = myVar
基本来源(按要求,很抱歉这么脏):import time
import os, sys, wx
from ftplib import FTP_TLS
from threading import Thread
from wx.lib.pubsub import Publisher
########################################################################
class FtpValues(object):
""" Returns a property attribute - called by FtpFileTransfer