Свойства и методы базового класса из библиотечного класса не наследуются в мой подкласс.Python

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

Сообщение Anonymous »

Кажется, я не могу правильно наследовать базовый класс в свой пользовательский класс, в данном случае класс ServiceInfo из библиотеки Zeroconf в мой пользовательский класс MdnsServiceInfo. Тестируя обходные пути, я создал локальный клон класса, импортировал его, и он работает (но не оптимально), а при импорте исходного класса из библиотеки Zeroconf он ломается.
Мой собственный класс ServiceInfo (добавлен один дополнительный параметр zc):

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

class MdnsAsyncServiceInfo(ServiceInfo):
def __init__(self, zc:'Zeroconf', *args, **kwargs):
super().__init__(*args, **kwargs)
self._zc = zc
Я клонировал класс ServiceInfo локально (скопировал/вставил из файла Zeroconf info.py, единственная разница — пути импорта).
оригинал: from .._cache import DNSCache vs clone: ​​from Zeroconf._cache import DNSCache и т. д.
Как импортируется класс клона

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

from mdns_discovery.service_info_base import ServiceInfo
При клонированном импорте доступны все нужные мне методы и свойства.
Но когда я импортирую напрямую из библиотеки Zeroconf (а именно это и происходит), Пытаюсь добиться)

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

from zeroconf import ServiceInfo
Он не извлекает свойства или методы и выдает такие ошибки:

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

AttributeError: 'MdnsAsyncServiceInfo' object has no attribute '_get_initial_delay'
Просто дополнительная информация, если она актуальна. Это относительный путь к исходному классу в моей настройке ( — моя среда Python):

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

/home/ubuntu24/myproject/out/py/lib/python3.12/site-packages/zeroconf/_services/info.py
Это распространенная проблема в Python?

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

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

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

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

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

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

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