Ich habe ein Programm, das aus mehreren Modulen besteht, die die jeweiligen Web-Application-Handler spezifizieren, und eins, das den jeweiligen Router spezifiziert.
Die Bibliothek, die ich verwende, kann here gefunden werden.Load-Modul zum Aufruf seiner Dekoratoren
Auszug aus webapp.service
(es gibt mehr solcher Module):
from webapp.router import ROUTER
@ROUTER.route('/service/[id:int]')
class ServicePermissions(AuthenticatedService):
"""Handles service permissions."""
NODE = 'services'
NAME = 'services manager'
DESCRIPTION = 'Manages services permissions'
PROMOTE = False
webapp.router
:
ROUTER = Router()
Wenn ich importieren Sie die webapp.router
Modul, das webapp.service
Modul offensichtlich nicht ausgeführt werden. Daher wird der @ROUTER.route('/service/[id:int]')
Decorator nicht ausgeführt und meine Webanwendung schlägt mit der Nachricht fehl, dass die entsprechende Route nicht verfügbar ist.
Was ist die beste Vorgehensweise in diesem Fall, den Code in webapp.service
auszuführen, um die Dekorateure zu "laufen"? Ich muss das Modul selbst oder eines seiner Mitglieder nicht wirklich importieren.
Ja, Sie * bis * das Modul selbst importieren müssen wirklich. Nur so kann der Code ausgeführt werden. –
_ "Wenn ich das webapp.router-Modul importiere, wird das webapp.service-Modul offensichtlich nicht ausgeführt." _ Was? Wie ist das offensichtlich? Wenn Sie ein Modul importieren, wird der Code nicht mehr ausgeführt? Warum sollte das jemals der Fall sein? Ich verstehe das Problem überhaupt nicht. –
@DanielRoseman Aber dann wird sich jeder Linter über ungenutzte Importe beschweren. Gibt es einen eleganteren Weg? –