Pytania otagowane jako magic-methods


14
Praktyczny przykład metody specjalnej w Pythonie __call__
Wiem, że __call__metoda w klasie jest wyzwalana, gdy wywoływana jest instancja klasy. Nie mam jednak pojęcia, kiedy mogę użyć tej specjalnej metody, ponieważ można po prostu utworzyć nową metodę i wykonać tę samą operację, co w __call__metodzie i zamiast wywoływać instancję, można wywołać metodę. Byłbym bardzo wdzięczny, gdyby ktoś dał …

7
Dlaczego Python używa „magicznych metod”?
Bawiłem się ostatnio Pythonem i jedną rzeczą, która wydaje mi się nieco dziwna, jest szerokie użycie `` magicznych metod '', np. Aby udostępnić swoją długość, obiekt implementuje metodę def __len__(self), a następnie jest wywoływany, gdy piszesz len(obj). Zastanawiałem się tylko, dlaczego obiekty po prostu nie definiują len(self)metody i nie są …

3
Jak działa python numpy.where ()?
Bawię się, numpyprzekopuję dokumentację i natrafiłem na magię. Mianowicie mówię o numpy.where(): >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) W jaki sposób osiągają wewnętrznie, że jesteś w stanie przekazać coś podobnego x > 5do metody? Myślę, że ma to coś …

4
Co to jest atrybut __dict __.__ dict__ klasy Pythona?
>>> 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
Metody magiczne PHP __get i __set
O ile całkowicie się nie mylę, metody __geti __setmają pozwolić na przeciążenie → geti set. Na przykład poniższe instrukcje powinny wywołać __getmetodę: echo $foo->bar; $var = $foo->bar; Z __setmetody tej powinny skorzystać : $foo->bar = 'test'; To nie działało w moim kodzie i można je odtworzyć za pomocą tego prostego …

4
Tworzenie klasy zdefiniowanej przez użytkownika w języku Python z możliwością sortowania i mieszania
Jakie metody należy przesłonić / zaimplementować podczas tworzenia klas zdefiniowanych przez użytkownika, które można sortować i / lub haszować w Pythonie? Na co trzeba uważać? Wpisuję dir({})do mojego interpretera, aby uzyskać listę metod wbudowanych w dykty. Spośród nich zakładam, że muszę zaimplementować jakiś podzbiór plików ['__cmp__', '__eq__', '__ge__', '__gt__', '__hash__', …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.