Задать вопрос
@bqio
https://bqio.github.io/

Как сделать, чтобы не было возможности вызвать метод через инстанс?

from typing import Self
from abc import ABC, abstractmethod


class SerializableObject(ABC):
    @abstractmethod
    def serialize(self) -> bytes:
        pass

    @classmethod
    @abstractmethod
    def deserialize() -> Self:
        pass


class NumericObject(SerializableObject):
    def serialize(self) -> bytes:
        return super().serialize()

    @classmethod
    def deserialize() -> Self:
        return super().deserialize()


no = NumericObject()

# Как сделать, чтобы не было возможности вызвать метод через инстанс?
no.deserialize()

# А только через класс
NumericObject.deserialize()
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Думаю простого способа нет в силу особенностей дизайна. Объект экземпляра класса, как и объект класса, оба имеют полный доступ к пространству имен объекта класса. По этому думаю решение довольно сложное и того не стоит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
14 янв. 2025, в 00:45
7000 руб./за проект
14 янв. 2025, в 00:39
30000 руб./за проект
13 янв. 2025, в 23:21
2000 руб./в час