Skip to content

Instantly share code, notes, and snippets.

@dunossauro
Last active May 26, 2018 00:01
Show Gist options
  • Save dunossauro/7e99212c97f9883e1922c8324e756e81 to your computer and use it in GitHub Desktop.
Save dunossauro/7e99212c97f9883e1922c8324e756e81 to your computer and use it in GitHub Desktop.
Exemplo de como funcionam os decoradores de classe para o @rg3915
"""
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