Tag: dekorateur

Zugriff auf das Funktionsattribut, das in einem Dekorateur außerhalb dieses Dekorators erstellt wurde

Ich möchte zählen, wie oft eine gegebene Funktion aufgerufen wurde. Also habe ich einen countcalls Dekorator gemacht, um meinen Funktionen ein __callcount Attribut zu geben, das bei jedem Anruf inkrementiert wird. Einfach genug. Mein Problem ist, den __callcount Wert später wieder zu bekommen. Hier ist mein Code: import functools def countcalls(f): f.__callcount = 0 @functools.wraps(f) […]

Python: Ändern Sie Klassenart mit Dekorateur und halten Sie die Methoden

Ich möchte eine Klasse erstellen, die in verschiedenen Anwendungen und ihren APIs verwendet werden kann, um Benutzeroberflächen zu erstellen. Dafür habe ich ein Modul namens ui.py erstellt . Innerhalb dieses Moduls ist folgendes: from PyQt4 import QtGui def CreateGui(uiFile, parent=None): print "Ui build.." def GetUiObject(uiClass): pUI = uiClass.PARENT class ParentUI(pUI): def __init__(self, uiFile): CreateGui(uiFile, self) […]

Wie bekomme ich die gleichen / passieren Parameter zwischen Dekorateur und dekoriert Funktion?

In diesem Fall möchte ich _source_dir_abs:str in decorator übergeben. Ich habe versucht, den gleichen Prozess nachzuahmen, den Flask für das Routing hat, um Parameter vom Dekorateur zu übergeben, um zu funktionieren, dass es verziert ist. Aber das macht den Parameter als Literalstring und nicht als Variable interpretiert. @dec_check_abs("<_source_dir_abs>") def walk_return_dir_nofolder(_source_dir_abs:str) -> list: w = walk(_source_dir_abs) […]

Django-Signale mit Dekorateure Problem

Ich habe die unten angegebene Struktur in meinem Projekt -parentDirectory -myModule __init__.py models.py handler.py Models.py @register class Student(): number = models.PositiveIntegerNumber(unique=True) name = models.CharField(max_length=64) def post_delete: """some code""" def post_save: """some code""" @register class Course(SomeBaseModel): code = models.CharField(unique=True) teacher = models.CharField(max_length=64) SomeBaseModel hat post_delete und post_save Funktionen definiert. Handler.py def register(cls_object): @receiver(post_save, sender=cls_object.__name__) @receiver(post_delete, sender=cls_object.__name__) […]

Python Decorator für GAE Web-Service Sicherheitskontrolle

In diesem Beitrag schlug Nick einen Decoder vor: Python / WebApp Google App Engine – Test für Benutzer / Pass in den Headern Ich schreibe eine API, um potenziell Dutzende von Methoden als Web-Services auszusetzen, so dass der Dekorateur wie eine tolle Idee klingt. Ich habe versucht, eine Codierung auf Basis dieses Beispiels zu starten: […]

Python wenden Dekorateur auf jede Methode in einer Klasse ohne zu inspizieren

Um die Antwort von der Anwendung von Python-Dekorateuren auf Methoden in einer Klasse leicht zu ändern, ist es möglich, einen Dekorator auf jede Methode in einer Klasse anzuwenden. Gibt es eine Möglichkeit, dies ohne das Inspektionsmodul zu tun? Ich habe versucht, dies mit Metaclasses zu erreichen und __getattribute__ zu modifizieren, aber ich bekomme immer unendliche […]

Warum bricht mein Dekorator für diesen Flask-Login-Endpunkt?

Ich habe herausgefunden, wie man Flask-Login authentifizieren einen Benutzer basierend auf einem LDAP-Lookup. Nun möchte ich noch eine Berechtigung zum Mix hinzufügen – das heißt, erlaube nur den Zugriff auf bestimmte Endpunkte, wenn ein Benutzer sich angemeldet hat und zu den richtigen Gruppen gehört. Ich bin mir nicht sicher, ob dies der richtige Weg ist, […]

Python-Klassen-Dekorator-Converting-Element Zugriff auf Attribut-Zugriff

Ich suche einen Dekorator für Python-Klasse, die jeden Elementzugriff auf Attributzugriff umwandeln würde, so etwas wie dieses: @DictAccess class foo(bar): x = 1 y = 2 myfoo = foo() print myfoo.x # gives 1 print myfoo['y'] # gives 2 myfoo['z'] = 3 print myfoo.z # gives 3 Ist ein solcher Dekorateur schon irgendwo da? Wenn […]

Python, verwirrt in dekorieren und schließen

Ich habe einige Test-Code: Def num (num): Def deco (func): Def wrap (* args, ** kwargs): Inputed_num = num Rückkehr func (* args, ** kwargs) Rückholverpackung Rückkehr deco @num (5) Def test (a): Return a + inputed_num Drucktest (1) Wenn ich diesen Code laufe, bekam ich einen Fehler, dass 'inputed_num' nicht definiert ist Meine Frage […]

Python: Regelmäßige Methode und statische Methode mit dem gleichen Namen

Einführung Ich habe eine Python–Klasse, die eine Reihe von Methoden enthält. Ich möchte, dass eine dieser Methoden ein statisches Gegenstück hat – das heißt eine statische Methode mit demselben Namen -, die mehr Argumente behandeln kann. Nach einiger Suche habe ich festgestellt, dass ich den @staticmethod Dekorateur verwenden kann, um eine statische Methode zu erstellen. […]

Python ist die beste Programmiersprache der Welt.