abstractmethod para qualquer método já decorado

This commit is contained in:
Luiz Otávio
2022-11-18 09:36:20 -03:00
parent 093ea6f646
commit 6eed35cbbe

35
aula143.py Normal file
View File

@@ -0,0 +1,35 @@
# abstractmethod para qualquer método já decorado (@property e setter)
# É possível criar @property @property.setter @classmethod
# @staticmethod e métodos normais como abstratos, para isso
# use @abstractmethod como decorator mais interno.
# Foo - Bar são palavras usadas como placeholder
# para palavras que podem mudar na programação.
from abc import ABC, abstractmethod
class AbstractFoo(ABC):
def __init__(self, name):
self._name = None
self.name = name
@property
def name(self):
return self._name
@name.setter
@abstractmethod
def name(self, name): ...
class Foo(AbstractFoo):
def __init__(self, name):
super().__init__(name)
# print('Sou inútil')
@AbstractFoo.name.setter
def name(self, name):
self._name = name
foo = Foo('Bar')
print(foo.name)