Python 如何将变量从一个函数调用到另一个函数?
在wxPython中,我试图从一个函数(在实例化器中)定义一个变量来调用另一个函数(不是在实例化器中,而是在类中) 我见过有人在他们的处境中解决别人的问题,我也尝试过其他人,但这对我不起作用Python 如何将变量从一个函数调用到另一个函数?,python,wxpython,Python,Wxpython,在wxPython中,我试图从一个函数(在实例化器中)定义一个变量来调用另一个函数(不是在实例化器中,而是在类中) 我见过有人在他们的处境中解决别人的问题,我也尝试过其他人,但这对我不起作用 类名称提示(wx.Frame): 定义初始值(自,*args,**kw): 超级(名称提示,自我)。\uuuuu初始值(*参数,**千瓦) panl=wx.面板(自) textboxtest=wx.TextCtrl(panl)#将textboxtest定义为文本框 textboxtest.Bind(wx.E
类名称提示(wx.Frame):
定义初始值(自,*args,**kw):
超级(名称提示,自我)。\uuuuu初始值(*参数,**千瓦)
panl=wx.面板(自)
textboxtest=wx.TextCtrl(panl)#将textboxtest定义为文本框
textboxtest.Bind(wx.EVT_TEXT,self.OnKeyTyped)
read=wx.按钮(panl,label=“Print”,pos=(0,25))
read.Bind(wx.EVT_按钮,self.PrintText)
def打印文本(自身、事件):
typedtext=event.textboxtest.GetString()#试图在此处调用相同的文本框
wx.StaticText(wx.Panel(self),label=typedtext,pos=(25,25))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=wx.app()
frm=名称提示(无,标题为“篮球赛”)
frm.设置尺寸(0,019201040)
frm.Show()
app.MainLoop()
我得到这个错误:
AttributeError: 'CommandEvent' object has no attribute 'textboxtest'
Traceback (most recent call last):
File "textboxtest.py", line 19, in PrintText
typedtest = event.textboxtest.GetString() # attempting to call the same text box here
欢迎来到StackOverflow 实现所需功能的最简单方法是在创建
wx.TextCtrl
时使用self
,这样它就可以从\uuuuuu init\uuuuu
以外的方法获得,然后直接从其他方法访问wx.TextCtrl
的值
import wx
class NamePrompts(wx.Frame):
def __init__(self, *args, **kw):
super(NamePrompts, self).__init__(*args, **kw)
panl = wx.Panel(self)
self.textboxtest = wx.TextCtrl(panl) # defining textboxtest as a text box
#self.textboxtest.Bind(wx.EVT_TEXT, self.OnKeyTyped)
read = wx.Button(panl, label="Print", pos=(0, 25))
read.Bind(wx.EVT_BUTTON, self.PrintText)
def PrintText(self, event):
typedtext = self.textboxtest.GetValue() # attempting to call the same textbox here
print(typedtext)
wx.StaticText(wx.Panel(self), label=typedtext, pos=(25, 25))
if __name__ == '__main__':
app = wx.App()
frm = NamePrompts(None, title='Basketball Game')
frm.SetSize(50,50,300,300)
frm.Show()
app.MainLoop()
尽管如此,如果您想了解如何通过事件传递自定义变量,您可以检查其用法和。它不应该是
self.textboxtest.GetString()
而不是event.textboxtest.GetString()
?和构造函数中的self.textboxtest=wx.TextCtrl(panl)
,self.textboxtest.Bind(wx.EVT_TEXT,self.OnKeyTyped)
。根据wxPython,这就是它应该是的。或者我是这么听说的。是的,那不管用