W Pythonie, czym są metaklasy i do czego ich
W Pythonie, czym są metaklasy i do czego ich
Jak znaleźć nazwę klasy, która utworzyła instancję obiektu w Pythonie, jeśli funkcja, z której to robię, jest klasą podstawową, z której wywodzi się klasa instancji? Zastanawiałem się, czy moduł inspekcji mógł mi tutaj pomóc, ale wydaje się, że nie daje mi tego, czego chcę. Poza analizowaniem...
Więc szukam tutaj czegoś w rodzaju funkcji print_r PHP . Dzięki temu mogę debugować skrypty, sprawdzając, jaki jest stan danego
Biorąc pod uwagę funkcję Python: def a_method(arg1, arg2): pass Jak mogę wyodrębnić liczbę i nazwy argumentów. To znaczy, biorąc pod uwagę, że mam odniesienie func, chcę func.[something]wrócić ("arg1", "arg2"). Scenariusz użycia jest taki, że mam dekorator i chcę użyć argumentów metody w tej...
Do celów rejestrowania chcę pobrać w pełni kwalifikowaną nazwę klasy obiektu Pythona. (W pełni kwalifikowane mam na myśli nazwę klasy, w tym nazwę pakietu i modułu). Wiem o tym x.__class__.__name__, ale czy istnieje prosty sposób na pobranie pakietu i
Próbuję zaimplementować funkcjonalność wycinka dla klasy, którą tworzę, która tworzy reprezentację wektorową. Do tej pory mam ten kod, który, jak sądzę, prawidłowo zaimplementuje wycinek, ale za każdym razem, gdy wykonuję wywołanie, takie jak v[4]gdzie v jest wektorem, Python zwraca błąd o braku...
Mam klasę, w której chcę zastąpić __eq__metodę. Wydaje się sensowne, że powinienem zastąpić __ne__metodę jak dobrze, ale czy to ma sens, aby wdrożyć __ne__w kategoriach __eq__jako takich? class A: def __init__(self, attr): self.attr = attr def __eq__(self, other): return self.attr ==...
Jak mogę uzyskać klasę, która zdefiniowała metodę w Pythonie? Chciałbym, aby następujący przykład wyświetlał „ __main__.FooClass”: class FooClass: def foo_method(self): print "foo" class BarClass(FooClass): pass bar = BarClass() print get_class_that_defined_method(bar.foo_method)...
Chcę mieć możliwość stworzenia klasy (w Pythonie), która po zainicjowaniu __init__nie akceptuje nowych atrybutów, ale akceptuje modyfikacje istniejących atrybutów. Jest kilka hakerskich sposobów, aby to zrobić, na przykład mając __setattr__metodę taką jak def __setattr__(self, attribute,...