Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用*args和**kwargs会在wxpython中引发错误?_Python_Wxpython - Fatal编程技术网

为什么使用*args和**kwargs会在wxpython中引发错误?

为什么使用*args和**kwargs会在wxpython中引发错误?,python,wxpython,Python,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

运行此代码会导致错误

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 *'
导入wx
类MyFrame(wx.Frame):
定义初始化(self,*args,**kwargs):
wx.Frame.\uuuu init\uuuux(self、args、kwargs)
self.Show()
app=wx.app()
frame=MyFrame(无)
app.MainLoop()
回溯(最近一次呼叫最后一次):
文件“testing.py”,第10行,在
frame=MyFrame(无)
文件“testing.py”,第6行,在_init中__
wx.Frame.\uuuu init\uuuux(self、args、kwargs)
文件“C:\Python27\lib\site packages\wx-2.9.4-msw\wx\\u windows.py”,第580行,在uu init中__
_视窗框架开关(自,视窗新框架(*args,**kwargs))
TypeError:在方法“new_Frame”中,应为“wxWindow*”类型的参数1
在wxpython中是否可以对位置参数和命名参数使用*args和**kwargs

wx.Frame.__init__(self, *args, **kwargs)
它很好用。。。btu您需要正确地传递它们


它很好用。。。btu当传递参数用于解包时,您需要正确地传递参数

来解释上述问题。^使用
*
**
,解包将传递参数作为单个参数或关键字参数。例如
func(*(1,2),***{'a':3,'b':4})
与说
func(1,2,a=3,b=4)
相同,如果在传递args和kwargs时不包括星号,那么在传递参数用于解包时,就传递元组和dictal来解释上述内容^using
*
**/code>,将参数作为单个参数或关键字参数传递。例如
func(*(1,2),**{'a':3,'b':4})
与说
func(1,2,a=3,b=4)
相同,如果在传递args和kwargs时不包括星号,那么就是传递元组和dict