Python: Definieren Sie eine Funktion nur dann, wenn das Paket existiert

8

Ist es möglich, Python 2.7 mitzuteilen, nur eine Funktionsdefinition zu analysieren, wenn ein Paket existiert?

Ich habe ein Skript, das auf mehreren Rechnern läuft. Im Skript sind einige Funktionen definiert, die sehr nützlich sind, aber für die Kernoperationen, die das Skript ausführt, nicht erforderlich sind. Einige der Computer, auf denen das Skript ausgeführt wird, verfügen nicht über das Paket, das von der Funktion importiert wird (und das Paket kann nicht auf ihnen installiert werden). Derzeit muss ich die Funktionsdefinition auskommentieren, bevor ich den Repo auf diese Maschinen kloniere. Eine andere Lösung wäre, zwei verschiedene Zweige zu pflegen, aber das ist noch mühsamer. Gibt es eine Lösung, die uns davon abhält, den Code vor dem Drücken ständig zu kommentieren?

Es gibt bereits Lösungen für den Aufruf der Funktion, zB:

%Vor%     
John 05.09.2015, 14:49
quelle

1 Antwort

9

Funktionsdefinitionen und Importe sind nur Code in Python, und wie anderer Code können Sie sie in ein try :

einbinden %Vor%

Dies würde die Funktion wear nur definieren, wenn das Modul bandana verfügbar ist.

Ob das eine gute Idee ist oder nicht, bleibt Ihnen überlassen - ich denke, es wäre in Ihren eigenen Skripten in Ordnung, aber Sie wollen das vielleicht nicht in Code tun, den andere Leute verwenden werden. Eine andere Idee könnte sein, so etwas zu tun:

%Vor%

Dies würde deutlicher machen, warum Sie die Funktion wear nicht verwenden können.

    
Wander Nauta 05.09.2015, 14:55
quelle

Tags und Links