diff --git a/aula143.py b/aula143.py new file mode 100644 index 0000000..18408dc --- /dev/null +++ b/aula143.py @@ -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)