Pytania otagowane jako getattr


14
Czym jest dokładnie getattr () i jak go używać?
Niedawno przeczytałem o tej getattr()funkcji . Problem polega na tym, że wciąż nie mogę pojąć jego użycia. Jedyne, co rozumiem, getattr()to getattr(li, "pop")to, że dzwonię li.pop. Nie rozumiałem, kiedy książka wspomniała, jak go używać, aby uzyskać odniesienie do funkcji, nie znając jej nazwy do czasu wykonania. Może w ogóle to …
295 python  getattr 

4
Zrozumienie różnicy między __getattr__ a __getattribute__
Próbuję zrozumieć różnicę między __getattr__a __getattribute__jednak jestem braku na niego. Odpowiedź na pytanie przepełnienie stosu Różnica między __getattr__VS__getattribute__ mówi: __getattribute__jest wywoływany przed spojrzeniem na rzeczywiste atrybuty obiektu, więc może być trudny do prawidłowego wdrożenia. Bardzo łatwo możesz skończyć w nieskończonych rekurencjach. Nie mam pojęcia, co to znaczy. Następnie mówi: Prawie …


4
Jak wywołać setattr () w bieżącym module?
Co mam przekazać jako pierwszy parametr " object" do funkcji setattr(object, name, value), aby ustawić zmienne w bieżącym module? Na przykład: setattr(object, "SOME_CONSTANT", 42); dające taki sam efekt jak: SOME_CONSTANT = 42 w module zawierającym te linie (z poprawnym object). Generuję kilka wartości na poziomie modułu dynamicznie, a ponieważ nie …

8
__getattr__ w module
Jak można zaimplementować odpowiednik a __getattr__w klasie, w module? Przykład Podczas wywoływania funkcji, która nie istnieje w statycznie zdefiniowanych atrybutach modułu, chcę utworzyć wystąpienie klasy w tym module i wywołać na niej metodę o tej samej nazwie, która nie powiodła się w wyszukiwaniu atrybutów w module. class A(object): def salutation(self, …

6
Jak zaimplementować __getattribute__ bez nieskończonego błędu rekurencji?
Chcę przesłonić dostęp do jednej zmiennej w klasie, ale normalnie zwrócić wszystkie inne. Jak to osiągnąć za pomocą__getattribute__ ? Wypróbowałem następujące rozwiązania (które powinny również zilustrować, co próbuję zrobić), ale pojawia się błąd rekursji: class D(object): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=='test': return 0. else: return self.__dict__[name] >>> …
102 python  class  oop  recursion  getattr 
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.