From 360580df663b659be674822508c472b03d1bde4c Mon Sep 17 00:00:00 2001 From: Vitor Buxbaum Date: Sun, 21 Mar 2021 18:51:44 -0300 Subject: [PATCH] =?UTF-8?q?1.13=20-=20Implementa=C3=A7=C3=A3o,=20decis?= =?UTF-8?q?=C3=B5es=20e=20assert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1_introducao/13_static.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 1_introducao/13_static.py diff --git a/1_introducao/13_static.py b/1_introducao/13_static.py new file mode 100644 index 0000000..f2234bf --- /dev/null +++ b/1_introducao/13_static.py @@ -0,0 +1,26 @@ +""" +Nesta implementação em Java, o livro utiliza o artificio 'static' da linguagem. +Entretanto não há uma forma, em Python, para simular o comportamento de +atributos estáticos EXATAMENTE como ocorre em Java. + +Para simular o comportamento em Python, o atributo estático deve ser acessado +diretamente por sua classe, e não pela instância (como é feito no livro). +""" + + +class A: + + STATIC = int() + + def __init__(self): + self.media = int() + + +a = A() +A.STATIC, a.STATIC, a.media = 5, 5, 5 + +b = A() +A.STATIC, b.STATIC, b.media = 7, 7, 7 + + +assert (A.STATIC, a.STATIC, a.media, b.STATIC, b.media) == (7, 5, 5, 7, 7)