Правильный способ ввести классовую работу в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Правильный способ ввести классовую работу в Python

Сообщение Anonymous »

Следующие предложения здесь я внедрил декоратор ClassProperty в Python следующим образом

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

class classproperty[T]:
def __init__(self, func: Callable[..., T]):
self.func = func

def __get__(self, _obj: Any, owner: Any) -> T:
return self.func(owner)
< /code>
Мой вопрос заключается в том, сможем ли мы сделать что -то лучше с набором? _obj 
, как я понимаю, экземпляр класса, а владелец -сам класс, так что что-то вроде

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

class classproperty[T, C]:
def __init__(self, func: Callable[[type[C]], T]):
self.func = func

def __get__(self, _obj: C, owner: type[C]) -> T:
return self.func(owner)
, возможно, должен работать, хотя Mypy (1.15.0, Python версия 3.13.1) дает мне следующий фрагмент кода

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

class Test:
@classproperty
def my_property(cls):
return 1
< /code>
Следующая ошибка < /p>
error: Argument 1 to "classproperty" has incompatible type "Callable[[Test], Any]"; expected "Callable[[type[Never]], Any]"  [arg-type]
Я не уверен, что понимаю это - почему mypy ожидает функции, которая принимает тип никогда ?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сгладить вложенную классовую структуру в C#?
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Правильный способ ввести подсказки защищенных / частных классов в Python?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Заставить бота автоматически завершать работу после того, как он выполнил свою работу
    Anonymous » » в форуме Python
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous
  • Типинг Python: есть ли способ ввести переменную со значением другой переменной
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Типинг Python: есть ли способ ввести переменную со значением другой переменной
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

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