forked from luizomf/cursopython2023
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaula143.py
35 lines (26 loc) · 853 Bytes
/
aula143.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)