Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problemas em NÃO instanciar uma classe

Olá, nesse código a ideia é não instanciar a classe "Serviço", mas quando texto ainda sim consigo instancia-la. O que faço de errado. Já agradeço a ajuda!

from abc import ABCMeta

class Servico(metaclass=ABCMeta):

    def __init__(self):
        self._tipo = 'branco'

    @property
    def tipo(self):
        return self._tipo

    @tipo.setter
    def tipo(self, tipo):
        self._tipo = tipo

    def __str__(self):
        return f'{self.tipo}'

if __name__ == '__main__':
    s = Servico()
    print(s)
3 respostas

Marcio,

Vc poderia explicar melhor a sua ideia?

solução!

Boa Tarde, Márcio. Tudo bem?

Também estou estudando python, e pelo que entendi, não conseguimos tornar uma classe estática no python, mas sim os seus métodos! Dessa forma, não conseguiríamos instanciá-la. Segue o código que fiz, referências e a mensagem

from abc import ABCMeta, abstractmethod

class Servico(metaclass=ABCMeta):
    @abstractmethod
    def __init__(self):
        self._tipo = 'branco'

    @property
    def tipo(self):
        return self._tipo

    @tipo.setter
    def tipo(self, tipo):
        self._tipo = tipo

    def __str__(self):
        return f'{self.tipo}'

if __name__ == '__main__':
    s = Servico()
    print(s)

Referências:

https://julien.danjou.info/guide-python-static-class-abstract-methods/

https://stackoverflow.com/questions/13646245/is-it-possible-to-make-abstract-classes-in-python

Obrigado pelas respostas. É isso mesmo Henrique, fiz uns testes e entendi a ideia. Valeu!