Como se chama um exemplo de uma aula em Python?
Isto é inspirado por uma pergunta que acabei de ver, "mude o que é devolvido chamando instância de classe", mas foi rapidamente respondida com {[[1]} (e aceite, de modo que o autor da pergunta não pretendia realmente chamar a instância).
Agora chamar uma instância de uma classe pode ser feito assim:instance_of_object = object()
instance_of_object()
Mas vamos ter um erro, Algo do género.
este comportamento é definido no código CPython aqui.
Então, para garantir que temos esta questão em Stackoverflow:Como se chama uma instância de uma classe em Python?
14
Author: Aaron Hall, 2014-06-17
1 answers
Você chama uma instância de uma classe como no seguinte:
o = object() # create our instance
o() # call the instance
Mas isto normalmente nos dará um erro.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'object' object is not callable
Como podemos chamar o caso como pretendido, e talvez obter algo útil dele?
Temos de implementar o método especial Python, __call__
!
class Knight(object):
def __call__(self, foo, bar, baz=None):
print(foo)
print(bar)
print(bar)
print(bar)
print(baz)
Instanciar a classe:
a_knight = Knight()
Agora podemos chamar a instância de classe:
a_knight('ni!', 'ichi', 'pitang-zoom-boing!')
Que imprime:
ni!
ichi
ichi
ichi
pitang-zoom-boing!
E temos agora, na verdade, e com sucesso., chama uma instância da classe!
30
Author: Aaron Hall, 2016-09-26 21:19:26