Проблема с вызовом __setitem__
Пытаюсь унаследовать класс mechanize
.Browser
:
from mechanize import Browser
class LLManager(Browser, object):
IS_AUTHORIZED = False
def __init__(self, login = "", passw = "", *args, **kwargs):
super(LLManager, self).__init__(*args, **kwargs)
self.set_handle_robots(False)
Но когда я делаю что-нибудь такое:
lm["Widget[LinksList]_link_1_title"] = anc
выдаётся ошибка:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
lm["Widget[LinksList]_link_1_title"] = anc
TypeError: 'LLManager' object does not support item assignment
А когда вот так:
>>> m.__setitem__("Widget[LinksList]_link_1_title", anc)
>>> print lm.form
<TextControl(Widget[LinksList]_link_1_title=Джинсовый чел)>
<TextControl(Widget[LinksList]_link_1_url=http://)>
, то всё работает.
Метод __setitem__
класса у Browser
и выше не перегружен.
Почему мой класс или экземпляр не наследуют этот метод как у родителя?
Источник: Stack Overflow на русском