Betriebs- und Wartungsautomatisierung – Wie können extern gelesene Dateiinhalte verwendet werden, um die Ausführungsreihenfolge und Parameter von Python-Funktionen zu bestimmen?
PHP中文网
PHP中文网 2017-06-14 10:53:27
0
1
952

Jetzt erstellen wir eine Reihe automatischer Tools für Programme auf dem Server mit verschiedenen Vorgängen wie Starten, Stoppen und Anpassen. Der Bereitstellungsinhalt auf verschiedenen Knoten ist jedoch nicht nur derselbe, es wird auch davon ausgegangen, dass Python-Funktionen mit unterschiedlichen Funktionen vorbereitet wurden. Lesen Sie dann externe Informationen, z. B. JSON-Daten, um die Ausführungsreihenfolge und Parameter dieser Funktionen zu bestimmen. Können Sie mir bitte sagen, wie dies erreicht wird?
Zum Beispiel gibt es drei Geschäftsfunktionen: Funktion Funktion 1 (Parameter 1, Parameter 2) Funktion Funktion 2 (Parameter 1, Parameter 2, Parameter 3) Funktion Funktion 3 (Parameter 1).
Dann lese ich einen {{{'funcname':'Function function 2'},{'parameter':[para1,para2,para3]}},{{'funcname':'Function function 1'},{' Parameter ':[para1,para2]}}}
Dann folgt das Programm der Reihenfolge von Funktion 2 und Funktion 1 und liest die Parameterparameter, um diese Reihe von Aktionen auszuführen.
(Tatsächlich benötigt es als Automatisierungstool auf jeden Fall zeitnahe Feedback-Informationen. Nach der Ausführung jeder Funktion werden die Rückgabeinformationen gelesen. Wenn ein Fehler auftritt, wird das Programm sofort unterbrochen und die Informationen werden gemeldet oder protokolliert Mit anderen Worten, jedes Mal, wenn eine Funktion ausgeführt wird, führt die Funktionsfunktion auch ein einfaches Programm aus, um das Rückgabeergebnis zu beurteilen)

Hier ist zu beachten, dass die Anzahl der auszuführenden Funktionen ungewiss ist und auch die Reihenfolge ungewiss ist. Der dümmste Weg, der mir sofort einfiel, war, die externe JSON-Datei zu durchlaufen und dann den Funktionsnamen auszulesen, um zu bestimmen, welche Funktion ausgeführt werden soll. Ich habe jedoch das Gefühl, dass es schwieriger ist, diese Methode später zu erweitern und aufrechtzuerhalten. Ich hoffe, wir können darüber diskutieren

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(1)
女神的闺蜜爱上我

使用eval可以将字符串当作代码来执行,并返回结果:

def func1(a,b):
    return a+b

s = eval("func1(1,2)")
print(s)
# 3
  1. 用一个循环,遍历Json文件的所有items

  2. 将函数名和参数,转换为字符串。

  3. eval执行字符串

  4. 处理返回值

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage