Last active
May 26, 2018 00:01
-
-
Save dunossauro/7e99212c97f9883e1922c8324e756e81 to your computer and use it in GitHub Desktop.
Exemplo de como funcionam os decoradores de classe para o @rg3915
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Respondendo a questões feitas no grupo da live de Python. | |
""" | |
class Teste: | |
bananas_cls = 5 # Variável de classe | |
def __init__(self): | |
"""Método que inicia a instância.""" | |
self.bananas_self = 10 # Variável de instância | |
def selfmethod(self): | |
"""Método de instância.""" | |
return self.bananas_self | |
@classmethod | |
def classmethod(cls): | |
""" | |
Método que usa cls e não self, compartilha estado com a classe. | |
""" | |
return cls.bananas_cls | |
@staticmethod | |
def staticmethod(): | |
""" | |
Método que não compartilha estado com a classe nem com a instância. | |
""" | |
return 42 | |
# Métodos que não dependem da instância | |
print(Teste.staticmethod()) # 42 | |
print(Teste.classmethod()) # 5 | |
# Métodos que dependem | |
t = Teste() | |
print(t.selfmethod()) # 10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment