Qual a diferença entre os termos "função" e "método" no Python?

307 views
Skip to first unread message

Sillas Pereira

unread,
Apr 16, 2020, 6:00:38 PM4/16/20
to Python Brasil
Os dois termos quer dizer a mesma coisa?
Eu pesquisei e encontrei essa definição sobre as linguagens de programação em geral:
Função: Parte de um programa ou classe que retorna um valor (da definição de Delphi/Pascal/Visual Basic/Visual Basic .NET);

Método: Procedimento ou função pertencente a uma classe (várias linguagens de programação definem desta forma, por exemplo, c++, c#, java, etc.).

Mas tem um livre que eu estou estudando em que ele chama essa função ".title()" de método e agora eu estou muito confuso e queria saber qual a diferença entre método e função no Python.

Veja um trecho do livro:
"Também podemos usar os métodos de string do Capítulo 2 em
qualquer elemento de uma lista. Por exemplo, podemos formatar o
elemento 'trek' de modo mais bonito usando o método title() :
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title()) Esse exemplo gera a mesma saída do exemplo
anterior, exceto pelo fato de 'Trek' começar com uma letra maiúscula."

Professor Paiva

unread,
Apr 16, 2020, 7:28:37 PM4/16/20
to python...@googlegroups.com
Silas,

 A primeira forma de se escrever programas de computador era através de comandos pelos quais se dizia o que e como fazer as etapas de um algoritmo, tendo sido denominada de paradigma imperativo.

O termo subprograma é um termo antigo e geral que caracteriza um trecho de código que pode ser referenciado/acionado por um nome e receber valores diferentes a cada ativação (parâmetros ). 

Esses subprogramas podem ser classificados em  procedimentos ou funções.

 Um procedimento tem um uso mais associado a reutilização de código e a ideia de dividir um programa em módulos, que é uma das características da programação imperativa chamada de modularização. Um procedimento não tem obrigação de retornar valores para o programa principal, fazendo-o pela comunicação através de variáveis globais ou mecanismos de passagem de parâmetros. Um procedimento sempre retorna para a instrução seguinte a sua instrução de chamamento ou ativação.

Uma função é mais flexível e pode ser ativada em expressões e em conjunto com outros comandos, tendo a obrigação de sempre retornar um valor para o seu ponto de retorno.

Algumas linguagens mais antigas eram baseadas em procedimentos e funções, como era o cado da linguagem Pascal, por exemplo. Linguagens como Java só usam funções.

O termo método é mais recente e surgiu com o paradigma de programação orientada a objetos, estando associada a parte de uma classe que contém a lógica do que fazer, em termos de operações dentro da classe.

Em geral, método será sinônimo de uma função que está associada a uma classe ou objeto.

Severino Paiva



Enviado do meu iPhone

Em 16 de abr de 2020, à(s) 19:00, Sillas Pereira <sillasp...@gmail.com> escreveu:


--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/28b11763-ee25-424d-a745-7a6f1aa7c294%40googlegroups.com.

Sillas Pereira

unread,
Apr 18, 2020, 12:55:12 PM4/18/20
to python...@googlegroups.com
Entendi, muito obrigado professor Paiva.

Sillas Pereira

unread,
Apr 18, 2020, 12:57:12 PM4/18/20
to Python Brasil
Entendi, muito obrigado Paiva.

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages