在下面创建NotebookPage
对象时,如何传递额外的参数“page_name
”?我得到以下错误:
class NotebookPage(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
NotebookPage(self, name='NotebookPage0', page_name=page)
TypeError: 'page_name' is an invalid keyword argument for this function
我需要在创建NotebookPage
对象时传递page_name
参数。但是由于page_name
不是{
在python3.x中,您只需在其他表达式之前提到显式kwarg,like this:
在Python的旧版本(2.x)中,只有在没有变量参数列表(
*args
)的情况下,这才有效。在您可能对继承的类初始化有问题。您试图传递继承的类初始化无法处理的参数。当继承的类},并且您试图传递一个未在继承类
__init__
不接受*args
,和/或{__init__
参数中定义的参数时,通常会发生这种情况让我们有两个类,一个继承另一个
当我们创建一个实例
something
时,它将调用B.__init__
。由于B
接受位置参数和命名参数,所以这里没有问题。然后它将调用A.__init__
,并传递参数x=1, page_num=2
。A.__init__
有参数x
,但既没有任何位置参数,也没有任何命名参数来处理page_num
。所以这就产生了一个错误。在如果继承的类只接受预定义的参数,则必须从带有}的通配符参数(})中删除未定义的参数,或者使用
kwargs.pop
和{*args
和{kwargs.get
或args[<index>]
从中获取相关参数并将其传递给继承的__init__
在调用} 方法:
__init__
之前,应该删除kwargs
中的其他参数。例如dict^{相关问题 更多 >
编程相关推荐