2009-07-07 14 views
48

Jakie są wszystkie specjalne (magiczne) metody w Pythonie? To jest metoda __xxx__.Specjalne (magiczne) metody w Pythonie

Często szukam sposobu na obejście czegoś, co, jak wiem, jest możliwe do zrobienia za pomocą jednej z tych metod, ale ciężko mi jest znaleźć, skoro o ile mogę powiedzieć, że nie ma ostatecznych lista tych metod, PLUS ich nazwy nie są tak naprawdę przyjazne dla Google. Więc myślę, że posiadanie listy tych na SO byłoby dobrym pomysłem.

+9

Są one często nazywane "metodami magicznymi". To może pomóc w Google. – balpha

+4

"Magia"? Skąd to masz? Dokumentacja Pythona nazywa je "specjalnymi nazwami metod". Nigdy nie widziałem ich nazywanych "magią". Gdzie to widziałeś? –

+6

@ S.Lott Nie? Czy nie [czytasz dokumenty] (http://docs.python.org/whatsnew/2.1.html?highlight=magic#pep-207-rich-comparisons)? Czy nie czytałeś im [przewodnika] (http://www.rafekettler.com/magicmethods.html)? –

Odpowiedz

46

Na poziomie python większość z nich jest udokumentowana w language reference. Na poziomie C możesz go znaleźć pod sekcją object protocol (ale w tym przypadku masz tylko podzbiór).

+2

+1: Każdy, wyraźnie wymieniony. Google "Python Special Method Names", a otrzymasz 700 000 odpowiedzi zaczynając od sekcji 3. Reference Language. –

+1

Kolejny [pomocny link] (http://www.rafekettler.com/magicmethods.html) – Raghu