Как исправить несовместимый порядок разрешения метода при получении из ctypes.structure и отображенияPython

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

Сообщение Anonymous »

Учитывая следующий код Python: < /p>

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

import ctypes
from collections.abc import Mapping

class StructureMeta(type(ctypes.Structure), type(Mapping)):
pass

class Structure(ctypes.Structure, Mapping, metaclass=StructureMeta):
pass

struct = Structure()
assert isinstance(struct, ctypes.Structure)
assert isinstance(struct, Mapping)
MetaClass необходим, чтобы избежать конфликта Metaclass при при выходе из обоих ctypes.structure (metaclass _ctypes.pycstructtype ) и отображение (Metaclass abc.abcmeta ) . < /p>
Это работает нормально при выполнении с Python 3.11. Увы, Pylint 3.3.4 сообщает о двух ошибках: < /p>
test.py:5:0: E0240: Inconsistent method resolution order for class 'StructureMeta' (inconsistent-mro)
test.py:9:0: E1139: Invalid metaclass 'StructureMeta' used (invalid-metaclass)
< /code>
Как мне нужно изменить мета -класс, чтобы исправить ошибку, сообщаемая Pylint? Это даже проблема?

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

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

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

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

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

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

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