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

Métodos Vs Funções Built-in

Num outro tópico do fórum, vi uma dúvida sobre len como função versus métodos dos objetos de uma classe. Num dos comentários/respostas foi dito que as funções built-in são utilizadas em diversas classes e o métodos são para coisas específicas de classes. Também foi falado que em Python tudo são objetos.

Minha pergunta é: se tudo são objetos, as funções built-in também seriam métodos de alguma classe instanciados em algum objeto. Qual classe ? Pergunto isso porque a muito tempo atrás quando programava em java, para imprimir um linha, tínhamos que acessar, de fato, um método de um objeto (System.out.println). É bem mais verborrágico, fato, mas o sistema (system), a saída (out) são representados como Classe e objetos, bem como o println é um método. Gostaria apenas de saber se tudo são realmente objetos, ou se as exceções são as funções built-in.

3 respostas

Olá Bruno,

Isso sim é uma pergunta de dev em T (kkk). As funções built-ins ficam dentro de um módulo nativo do python chamado 'builtins', você pode verificar na documentação do python todas as funções built-ins (https://docs.python.org/3/library/functions.html#built-in-funcs). Respondendo a sua ultima dúvida, nem tudo são classes, existem os módulos e bibliotecas.

(E, sim, também é possível trocar o significado de uma função "builtin" alterando diretamente o nome em builtins - isso vai fazer a substituição em todos os módulos do programa - mas aí você perde o controle da situação - não se recomenda faze-lo)

solução!

Oi Bruno,

as funções built-in são sim objetos, elas são da classe 'builtin_function_or_method'. A qualquer momento no intepretador vc pode usar a função type() para o ver o tipo de qualquer coisa, e como as funções também são objetos, tem esse retorno. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeQue eu saiba, essas funções já são importadas automaticamente no interpretador quando ele é executado e por isso estão sempre disponíveis. Não tenho certeza se vc pode instanciar um objeto dessa classe diretamente, nunca tentei.

Agora se vc quiser informações mais a fundo desse tipo, acho que vc vai precisar mergulhar nos peps. Link para o índice dos peps: https://peps.python.org/pep-0000/

Na página principal do python org, tem uma caixa de busca que retorna assuntos dos peps também. https://www.python.org/

boa sorte com essa pesquisa

Obrigado pelas respostas!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software