2013-05-13 42 views
0

運行該代碼產生的錯誤爲什麼使用* args和** kwargs會在wxpython中引發錯誤?

import wx 

class MyFrame(wx.Frame): 
    def __init__(self, *args, **kwargs): 
     wx.Frame.__init__(self, args, kwargs) 
     self.Show() 

app = wx.App() 
frame = MyFrame(None) 
app.MainLoop() 


Traceback (most recent call last): 
    File "testing.py", line 10, in <module> 
    frame = MyFrame(None) 
    File "testing.py", line 6, in __init__ 
    wx.Frame.__init__(self, args, kwargs) 
    File "C:\Python27\lib\site-packages\wx-2.9.4-msw\wx\_windows.py", line 580, in __init__ 
    _windows_.Frame_swiginit(self,_windows_.new_Frame(*args, **kwargs)) 
TypeError: in method 'new_Frame', expected argument 1 of type 'wxWindow *' 

是否有可能使用*指定參數和** kwargs的位置和命名參數在wxPython?

回答

4
wx.Frame.__init__(self, *args, **kwargs) 

它工作得很好...... BTU你需要正確地傳遞他們

+2

解釋上述^使用'*'和''**傳遞參數時用於*拆包*,這將通過作爲單個參數或關鍵字參數的參數。例如'func(*(1,2),** {'a':3,'b':4})'和'func(1,2,a = 3,b = 4)如果在傳遞args和kwargs時不包括星星,那麼你傳遞了一個元組和一個字典 – 2013-05-13 04:10:57

相關問題