Найти - Пользователи
Полная версия: Проблема с передачей аргумента
Начало » Python для новичков » Проблема с передачей аргумента
1
A.N.Onim
Добрый день!
Есть код:
class Html(wx.html.HtmlWindow):
    def __init__(self, *args, **kwargs):
        wx.html.HtmlWindow.__init__(self, *args, **kwargs)
        self.wind = kwargs['wind']

-

        self.html.panel.html = Html(self.html.panel, -1, (50, 50), (500, 400), wind='sd')

но выдает ошибку
Traceback (most recent call last):
  File "C:\Users\VMR\Desktop\library\Library.py", line 237, in <module>
    app = MyApp()
  File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 8631, in __init__
    self._BootstrapApp()
  File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 8196, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "C:\Users\VMR\Desktop\library\Library.py", line 231, in OnInit
    style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX^wx.RESIZE_BORDER)
  File "C:\Users\VMR\Desktop\library\Library.py", line 129, in __init__
    self.html.panel.html = Html(self.html.panel, -1, (50, 50), (500, 400), wind='sd')
  File "C:\Users\VMR\Desktop\library\Library.py", line 21, in __init__
    wx.html.HtmlWindow.__init__(self, *args, **kwargs)
  File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\html.py", line 971, in __init__
    _html.HtmlWindow_swiginit(self,_html.new_HtmlWindow(*args, **kwargs))
TypeError: 'wind' is an invalid keyword argument for this function
>>> 

Что не так?
JOHN_16
A.N.Onim
wx.html.HtmlWindow.__init__(self, *args, **kwargs)
A.N.Onim
TypeError: ‘wind’ is an invalid keyword argument for this function
вы передаете в функцию именованный аргумент, который она не поддерживает
A.N.Onim
А как тогда сделать? просто мне нужно при создании класа Html передать ему эту переменную.
JOHN_16
Решение в лоб как то так
from copy import copy
lass Html(wx.html.HtmlWindow):
    def __init__(self, *args, **kwargs):
        tmp = copy(kwargs)
        del tmp['wind']
        wx.html.HtmlWindow.__init__(self, *args, **tmp)
        self.wind = kwargs['wind']
A.N.Onim
JOHN_16, спасибо)
Rodegast
> Решение в лоб как то так

Ну ты и замутил… всё намного проще!
class Html(wx.html.HtmlWindow):
    def __init__(self, wind="", *args, **kwargs):
        wx.html.HtmlWindow.__init__(self, *args, **kwargs)
        self.wind = wind
JOHN_16
Rodegast
хм )) в данном конкретном случае полностью согласен …
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB