Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-DSLs:Maßgeschneiderte Lösungen für spezialisierte Domänen

Wenn wir das Programm schreiben, stellen wir fest, dass die von uns gelösten Probleme zu bestimmten Bereichen gehören, die auch als Domänen bezeichnet werden, wie zum Beispiel:

Durch die Verwendung der General Purpose Language (GPL) wie Python oder Java können wir diese Probleme lösen, aber der Code wird zu detailliert und eintönig. Daher verwenden wir die DSL (Domain Specific Language).

DSL – Domänenspezifische Sprache

Die domänenspezifische Sprache ist eine Programmier- oder Spezifikationssprache, die einer bestimmten Domäne gewidmet ist. Sie unterscheidet sich von der Allzwecksprache (GPL wie Python, C++ oder Java). Es gibt zwei Arten:

Externes DSL

Für die Arbeit mit den Datenbanken verwenden wir SQL. Anstatt Schleifen zum manuellen Scannen von Daten zu schreiben, schreiben wir einfach:

SELECT name FROM users WHERE age > 10;

Für die Gestaltung der Webseiten verwenden wir HTML. Anstatt die Textzeichenfolgen und -positionen manuell zu verwalten, deklarieren wir einfach:

<h1>Welcome To Tutorialspoint</h1>

Internes DSL

In Python baut die domänenspezifische Sprache auf der Python-Syntax auf. Frameworks wie Flask oder Pandas sind Beispiele für DSL-ähnliche Bibliotheken, die helfen, die Probleme klar auszudrücken.

@app.route('/home')
def home():
 return "Hello...!"

Warum DSLs in Python

Python ist die beste Wahl für DSL, weil:

Beispielsweise sind die Test-Frameworks wie Pytest oder Web-Frameworks wie Flask DSL-ähnlich. Anstatt die Low-Level-Logik zu schreiben, lassen sie die ausdrucksstarken Befehle schreiben.

Lassen Sie uns in das Beispiel eintauchen, um mehr über die domänenspezifische Sprache zu erfahren.

Beispiel 1

Schauen wir uns das folgende Beispiel an, in dem wir die Sprache der Mathematik in benannte Funktionen abstrahieren.

def add(x, y):
 return x + y
def multiply(x, y):
 return x * y
print(add(multiply(1, 3), multiply(2, 4)))

Es folgt die Ausgabe des obigen Programms:

11

Beispiel 2

Betrachten Sie das folgende Beispiel, in dem wir DSL in den Konfigurationsdateien verwenden werden.

class demo:
 def __init__(self):
 self.settings = {}
 def set(self, key, value):
 self.settings[key] = value
 return self
 def get(self, key):
 return self.settings.get(key)
result = demo()
result.set("host", "Welcome").set("port", 1231)
print(result.get("host")) 

Die Ausgabe des obigen Programms ist -

Welcome

Beispiel 3

Im folgenden Beispiel beobachten wir die DSL zum Abfragen von Daten mithilfe der SQL-Syntax innerhalb von Python.

class demo:
 def __init__(x, dataset):
 x.dataset = dataset
 def where(x, condition):
 x.dataset = [item for item in x.dataset if condition(item)]
 return x
 def select(x, selector):
 return [selector(item) for item in x.dataset]
users = [
 {"name": "Ram", "age": 10},
 {"name": "Ravi", "age": 24},
 {"name": "Rahul", "age": 19},
]
result = demo(users).where(lambda u: u["age"] > 18).select(lambda u: u["name"])
print(result)

Es folgt die Ausgabe des obigen Programms:

['Ravi', 'Rahul']

Python

  1. Python-Ausnahmebehandlung Mit der try-, except- und finally-Anweisung
  2. Beispiele für Python-Funktionen:Aufruf, Einrückung, Argumente und Rückgabewerte
  3. Erkunden anonymer Klassen und Objekte in Python
  4. Python List Comprehension, Anhängen, Sortieren, Länge [BEISPIELE]
  5. Python-Prüfung, ob Datei vorhanden ist | So prüfen Sie, ob ein Verzeichnis in Python existiert
  6. Python-DSLs:Maßgeschneiderte Lösungen für spezialisierte Domänen
  7. Python-Glossar:Grundlegende Begriffe und Definitionen
  8. Python - Erweiterungsprogrammierung mit C
  9. Treten Sie Real Python bei:Erstellen Sie Ihr Konto und greifen Sie auf Premium-Python-Tutorials zu
  10. Python-Debugger:Verbessern Sie mühelos Ihre Debug-Fähigkeiten