Использование аргументов ключевых слов в методе __getItem__ в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование аргументов ключевых слов в методе __getItem__ в Python

Сообщение Anonymous »

Я хочу определить класс Foo, чьи объекты можно использовать, например, foo [1, a = 2] < /code>. < /p>

Я попытался достичь этого, украсив __getiTem __ < /code> метод
foo, но без успеха. Ниже приведен пример кода. < /p>

Код: Выделить всё

def decorator(func):
def func_(*args, **kewargs):
if 'a' in kewargs:
args = list(args) + [kewargs['a']]
return func(*args)
else:
return func(*args)
return func_

class Foo(object):
@decorator
def __getitem__(self, *items):
return items
foo = Foo()

>>> foo.__getitem__(2, a=10)
(2, 10)
>>> foo[2, a=10]
SyntaxError: invalid syntax
< /code>

so foo [...] < /code> не эквивалентен foo .__ getitem __ (...) < /code>, что -то
за сцену сделано для первого. Мой вопрос в том, что именно и как
могу сделать foo [2, a = 10] 
для работы, если вообще.

Подробнее здесь: https://stackoverflow.com/questions/319 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»