Sono nuovo di Python e mentre l'unità testava alcuni metodi sul mio oggetto ho notato qualcosa di "strano".Python: la chiamata di un metodo 'direttamente' istanzia l'oggetto?
class Ape(object):
def __init__(self):
print 'ooook'
def say(self, s):
print s
def main():
Ape().say('eeek')
if __name__ == '__main__':
main()
Ho scritto questo piccolo esempio per illustrare dove mi sono confuso. Se fai Ape(). Say ('eeek') questo crea un'istanza di un oggetto Ape ed esegue il metodo init? Pensavo che non sarebbe successo, ma ho avuto alcuni strani effetti collaterali quindi ora penso che sia così?
Grazie che cancella le cose. Immagino che Ape() si accaparrà il raccolto subito visto che non vi è alcun riferimento ad esso da nessuna parte? – Pickels
@Pickels: diventa inaccessibile subito, quindi _could_ essere immondizia raccolta immediatamente, sì. Oppure potrebbe restare nel nether vuoto della memoria irraggiungibile fino a quando l'interprete Python decide di voler recuperare lo spazio ;-) –