Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Qual a diferença entre Funções e Métodos?

Ainda não consegui identificar a diferença entre os dois, por exemplo:

def funcao(x,y) - Função

def metodo(self,x,y) - Método

Qual a diferença entre eles?

4 respostas

Enquanto um método, é necessariamente preciso estar dentro de uma classe, a função pode ser definida por si só e chamada por si só. Exemplo:

Método

class Carro:
    def som(self):
        print "Vroooom!"
ferrari = Carro()
ferrari.som()

Função

def funcao(x,y):
        return x+y
print(funcao(1,1))

Em outras palavras, o método é uma função especifica daquela Classe

solução!

Sintáticamente a resposta do Diego está certa. Mas o motivo dessa diferença de sintaxe que é relevante. Uma função pode realizar literalmente qualquer coisa em qualquer contexto. Para que você satisfaça a orientação à objetos, o método deve implicar também em uma semântica, aquele metódo deve definir um comportamento que aquela classe tem, como é mostrado nas aulas. Se você tem uma classe Conta, os métodos dessa classe devem ser coesos em relação a essa classe. Um exemplo seria, você tem que processar uma tranferência de uma pessoa para outra, indicando motivo localização e outras informações dessa tranferência, os métodos da classe Conta devem conter apenas as regras de negócio em relação a movimentação de valores entre as contas, você não deveria colocar métodos que especificam onde a tranferência foi feita e outras coisas que não fazem parte do escopo daquela classe, pois isso seria uma característica da tranferência e não da Conta.

Muito obrigado!

Só não esqueça de colocar como solucionado para a resposta que respondeu sua pergunta, para que outros possam vir neste tópico em busca de respostas também!