-
-
Save rg3915/af29f078e7de0ba0da47404129aa5372 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