>>> class Const(object): # an overriding descriptor, see later
... def __init__(self, value):
... self.value = value
... def __set__(self, value):
... self.value = value
... def __get__(self, *_): # always return the constant value
... return self.value
...
>>>
>>> class X(object):
... c = Const(23)
...
>>> x=X()
>>> print(x.c) # prints: 23
23
>>> x.c = 42
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __set__() takes 2 positional arguments but 3 were given
Что значит
TypeError: __set__()
принимает 2 позиционных аргумента, но было задано 3`
означает?
Является ли __set__()
методом, принадлежащим типу дескриптора Const
?
Какая подпись у __set__()
?
Спасибо.
TypeError
, предоставляя правильную подпись. Это был весь первоначальный вопрос; он не спрашивал о целиConst
. (Дубликат еще больше подходит, если принять во внимание комментарий ОП.) - person Ry-♦   schedule 30.06.2017