Não ficou clara a explicação e na internet não achei nada sobre o uso de add para adicionar item a lista. Se possível, podem colocar um exemplo? Obrigado!
Não ficou clara a explicação e na internet não achei nada sobre o uso de add para adicionar item a lista. Se possível, podem colocar um exemplo? Obrigado!
Rodolpho,
Duck typing é um estilo de codificação de linguagens dinamicamente tipadas onde o tipo de uma variável não importa, contanto que seu comportamento seja o desejado. O nome "tipagem de pato" vem da expressão "se anda como pato, nada como um pato e faz quack como um pato, então provavelmente é um pato".
Quando criamos uma função ou um método em Python o tipo do parâmetro não é a parte importante, mas o que realmente importa é se o mesmo vai possuir os métodos e atributos esperados:
def realizar_operacao(operacao, **kwargs):
operacao.realizar(**kwargs)
A função realizar_operacao é um exemplo de como duck typing é aplicado: ela recebe como parâmetro o objeto operacao e executa o método realiza sem se importar com o tipo do objeto.
É interessante notar que realizar_operacao utiliza a variável mágica **kwargs, que recebe qualquer número de parâmetros nominais após passado o objeto referente à operação, não importando quais sejam.
Essa função pode ser implementada para realizar uma transferência, como vemos a seguir:
transferencia = Transferencia()
realizar_operacao(
transferencia,
conta_origem='14725-8',
conta_destino='85296-3',
valor=10000
)
A função também pode ser implementada para realizar um depósito simples:
deposito = Deposito()
realiza_operacao(
deposito,
conta_destino='85296-3',
valor=10000
)
FONTE:
Ignorância Zero - Aulas Python - 062 - POO IV: Herança, Super e Polimorfismo
Agradeço a resposta, mas não era essa a minha dúvida. Estou precisando de exemplo de add para adicionar item a lista.
Rodolpho,
Vou tentar ser mais claro: No Python, permitimos que o objeto defina o que significa ser adicionado. A expressão 3 + 3 é um açúcar sintático para chamar o método __add__
do tipo inteiro. É o mesmo que chamar int .__ add __ (3, 3) . Isso significa que, se você definir um método __add__
para uma de suas classes, poderá fazer todo tipo de coisa acontecer quando adicionar instâncias delas.
>>> 3 + 3
6
>>> int.__add__(3, 3)
6
>>>
Grande parte da sintaxe do Python é açúcar para métodos subjacentes. Especialmente acesso a dados. O acesso a membros dos objetos do tipo sequence type objects e mapping type objects é feito usando o método __getitem__
desses objetos.
>>> a = [0,1,2,3]
>>> print(a[0])
0
>>> b = {'a': 0, 'b': 1}
>>> print(b['a'])
0
>>>
No primeiro exemplo, usamos a sintaxe normal do Python. No segundo exemplo, fazemos o que o primeiro exemplo está fazendo por "debaixo dos panos" do interpretador. Se vc quiser saber mais tem que entrar em METAPROGRAMAÇÃO E DESCRITORES do Python. Sugiro ler o PYTHON FLUENTE - Luciano Ramalho
Beleza, Welton. Ficou mais claro sim. Muito obrigado pelos esclarecimentos. Abraços
Rodolpho,
Blz, Coloca a questão como resolvida. Por favor!