如何在 python 中打印 class 的变量

How to print the variable of a class in python

我正在尝试打印变量 self.result。最终目标是将其用于进一步处理,但现在只想访问变量,所以我选择它来打印,但是我收到了这条消息:

"wx._controls.StaticText; proxy of Swig Object of type 'wxStaticText *' at 0x23fed48> "

我的代码如下,如有任何帮助,我们将不胜感激。

import wx

class ExampleFrame(wx.Frame):
def __init__(self, parent):
    wx.Frame.__init__(self, parent)

    self.panel = wx.Panel(self)
    self.quote = wx.StaticText(self.panel, label="is Awesome")
    self.result = wx.StaticText(self.panel, label="")
    self.result.SetForegroundColour(wx.RED)
    self.button = wx.Button(self.panel, label="Save")
    self.lblname = wx.StaticText(self.panel, label="Your name:")
    self.editname = wx.TextCtrl(self.panel, size=(140, -1))

    # Set sizer for the frame, so we can change frame size to match widgets
    self.windowSizer = wx.BoxSizer()
    self.windowSizer.Add(self.panel, 1, wx.ALL | wx.EXPAND)

    # Set sizer for the panel content
    self.sizer = wx.GridBagSizer(5, 5)
    self.sizer.Add(self.quote, (0, 1))
    self.sizer.Add(self.result, (0, 0))
    self.sizer.Add(self.lblname, (1, 0))
    self.sizer.Add(self.editname, (1, 1))
    self.sizer.Add(self.button, (2, 0), (1, 2), flag=wx.EXPAND)

    # Set simple sizer for a nice border
    self.border = wx.BoxSizer()
    self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)

    # Use the sizers
    self.panel.SetSizerAndFit(self.border)
    self.SetSizerAndFit(self.windowSizer)

    # Set event handlers
    self.button.Bind(wx.EVT_BUTTON, self.OnButton)

def OnButton(self, e):
    self.result.SetLabel(self.editname.GetValue())



app = wx.App(False)
frame = ExampleFrame(None)
frame.Show()
print frame.result
app.MainLoop()

你的问题毫无意义:为什么要读出静态文本的标签?它的标签(!,StaticText没有值)是由OnButton事件设置的,读取名为editnameTextCtrl的值(我想你是搜索)。但要回答您的问题:如何从 StaticText 更改中读取标签:

print frame.result

print frame.result.GetLabel() # or GetLabelText()

这将导致一个空字符串,因为在框架创建后标签还没有直接设置。

documentation parent object of StaticText