As respostas dadas pela generalidade dos(as) alunos(as) denota uma incompreensão de aspectos básicos e fundamentais de Python. Em Python tudo são objectos, e os objectos têm atributos. O
nome é um dos atributos, e é através do nome que chegamos a outro valor, o valor. Assim, temos por exemplo:
1.
>>> x
=
5
2.
>>> x
3.
5
4.
>>> a
=
‘xpto’
5.
>>> a
6.
xpto
Neste exemplo, criámos objectos (5, ‘xpto’) e demos-lhes um nome (x, a).
Mas também se fizermos:
1.
>>>
def
acme(n):
2.
…
return
2
*
n
3.
…
4.
>>>
Criamos também um objecto, agora do tipo função, e estamos a dar-lhe o nome acme. Se agora perguntarmos pelo valor do objecto de nome acme o que recebemos de volta é o
descritor da função:
1.
>>> acme
2.
<function acme at
0x102778488
>
Então, no caso da pergunta do exame, quando fazemos:
Estamos a dizer que
a é um outro nome para o objecto de tipo função,
funcao. Logo, ao fazermos:
o que vai aparecer é a impressão do valor associado ao objecto de nome
a, que é o mesmo do associado a
funcao:
1.
>>>
def
funcao():
2.
…
print
(
'128'
)
3.
…
4.
>>> a
=
funcao
5.
>>> a
6.
<function funcao at
0x102778510
>
Notar que pode agora usar o nome a em vez de funcao e obter o mesmo resultado:
1.
>>> funcao()
2.
128
3.
>>> a()
4.
128
Sem comentários:
Enviar um comentário