method vs @classmethod vs @staticmethod

This commit is contained in:
Luiz Otávio
2022-11-15 07:22:25 -03:00
parent 49d7707740
commit 5acb44c862

39
aula130.py Normal file
View File

@@ -0,0 +1,39 @@
# method vs @classmethod vs @staticmethod
# method - self, método de instância
# @classmethod - cls, método de classe
# @staticmethod - método estático (❌self, ❌cls)
class Connection:
def __init__(self, host='localhost'):
self.host = host
self.user = None
self.password = None
def set_user(self, user):
self.user = user
def set_password(self, password):
self.password = password
@classmethod
def create_with_auth(cls, user, password):
connection = cls()
connection.user = user
connection.password = password
return connection
@staticmethod
def log(msg):
print('LOG:', msg)
def connection_log(msg):
print('LOG:', msg)
# c1 = Connection()
c1 = Connection.create_with_auth('luiz', '1234')
# c1.set_user('luiz')
# c1.set_password('123')
print(Connection.log('Essa é a mensagem de log'))
print(c1.user)
print(c1.password)