Domande taggate «magic-methods»


14
Python __call__ esempio pratico di metodo speciale
So che il __call__metodo in una classe viene attivato quando viene chiamata l'istanza di una classe. Tuttavia, non ho idea di quando posso usare questo metodo speciale, perché si può semplicemente creare un nuovo metodo ed eseguire la stessa operazione eseguita nel __call__metodo e invece di chiamare l'istanza, è possibile …

7
Perché Python usa i "metodi magici"?
Recentemente ho giocato con Python e una cosa che trovo un po 'strana è l'ampio uso di' metodi magici ', ad esempio per rendere disponibile la sua lunghezza, un oggetto implementa un metodo def __len__(self), e quindi viene chiamato quando scrivi tu len(obj). Mi stavo solo chiedendo perché gli oggetti …

3
Come funziona python numpy.where ()?
Sto giocando numpye scavando nella documentazione e mi sono imbattuto in un po 'di magia. Vale a dire sto parlando di numpy.where(): >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) Come fanno a ottenere internamente che tu sia in grado di …

4
Qual è l'attributo __dict __.__ dict__ di una classe Python?
>>> class A(object): pass ... >>> A.__dict__ <dictproxy object at 0x173ef30> >>> A.__dict__.__dict__ Traceback (most recent call last): File "<string>", line 1, in <fragment> AttributeError: 'dictproxy' object has no attribute '__dict__' >>> A.__dict__.copy() {'__dict__': <attribute '__dict__' of 'A' objects> ... } >>> A.__dict__['__dict__'] <attribute '__dict__' of 'A' objects> # What …


8
PHP __get e __set metodi magici
A meno che non mi sbagli completamente, i metodi __gete __setdovrebbero consentire il sovraccarico di → gete set. Ad esempio, le seguenti istruzioni dovrebbero richiamare il __getmetodo: echo $foo->bar; $var = $foo->bar; E quanto segue dovrebbe utilizzare il __setmetodo: $foo->bar = 'test'; Questo non funzionava nel mio codice ed è …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.