如何在python中创建使用**(双星)语法的对象时传递额外的参数?

alw*_*btc 4 python arguments function object

page_nameNotebookPage下面创建对象时如何传递额外的参数" " ?我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

我需要page_name在创建NotebookPage对象时传递参数.但由于page_name不是一个有效的论据wx.Panel,我得到了这个错误.

ndp*_*dpu 7

您应该kwargs在调用之前删除其他参数__init__.例如使用dict pop方法:

class NotebookPage(wx.Panel):
    def __init__(self, *args, **kwargs):
        page_name = kwargs.pop('page_name', None)
        wx.Panel.__init__(self, *args, **kwargs)
        if page_name:
            # somehow using page_name here
Run Code Online (Sandbox Code Playgroud)