Pytania otagowane jako python-datamodel


9
Uzyskiwanie nazwy klasy wystąpienia?
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 __class__członka, nie jestem pewien, …


15
Jak uzyskać nazwy parametrów metody?
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 samej kolejności, w jakiej pojawiają się dla …


5
Wdrażanie krojenia w __getitem__
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 wystarczających parametrów. Więc próbuję dowiedzieć się, jak zdefiniować …

5
Czy powinienem zaimplementować __ne__ pod względem __eq__ w Pythonie?
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 == other.attr def __ne__(self, other): return not self.__eq__(other) A może …

6
Pobierz klasę, która zdefiniowała metodę
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)

11
Zapobiegaj tworzeniu nowych atrybutów poza __init__
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, value): if not attribute in self.__dict__: print "Cannot set %s" % attribute else: self.__dict__[attribute] = …
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.