Heim > Backend-Entwicklung > Python-Tutorial > Auf dem Weg zu mühelosen Python-Konfigurationsdateien Version Ø

Auf dem Weg zu mühelosen Python-Konfigurationsdateien Version Ø

Barbara Streisand
Freigeben: 2024-12-05 01:40:13
Original
749 Leute haben es durchsucht

Towards Effortless Python Configuration Files Version Ø

Einführung

Wir schreiben viele Python-Anwendungen, die eine Anpassung über externe Eigenschaften erfordern, oder Anwendungen, deren Verhalten wir mit nicht fest codierten Eigenschaften und/oder Laufzeitkonfigurationseigenschaften anpassen oder beeinflussen möchten. Verschiedene Google-Suchen nach Lösungen führen zu Tutorials, die uns auf Codebeispiele verweisen, die zwar praktisch funktionieren, sich aber für reale Anwendungen nicht angemessen skalieren lassen.

Diese Artikel dokumentieren meinen Weg durch verschiedene Implementierungen, während ich auf meinem Weg zu einem einfachen, wartbaren und leicht erweiterbaren Mechanismus zum Verwalten von Anwendungskonfigurationseigenschaften wiederholt umgestaltete und neu implementierte.

Ausführung Ø

Die Tutorial-Versionen, die ich gefunden habe, waren lediglich Erweiterungen der Codeausschnitte, die die Bibliotheksentwickler bereitstellen, um zu beweisen, dass ihre Implementierungen funktionieren. Obwohl dies ausreicht, um einen Machbarkeitsnachweis zu erbringen, lassen sich die Snippets nicht in der realen Anwendungswelt skalieren.

Ein Beispiel hierfür ist der folgende Codeausschnitt.

import configparser

def create_config():
    config = configparser.ConfigParser()

    # Add sections and key-value pairs
    config['General'] = {
      'debug': 'True', 
      'log_level': 'info'
    }
    config['Database'] = {
      'db_name': 'example_db',
      'db_host': 'localhost', 
      'db_port': '5432'
    }

    with open('config.ini', 'w') as configfile:
        config.write(configfile)


if __name__ == "__main__":
    create_config()
Nach dem Login kopieren

Während dieser Codeausschnitt es uns sicherlich ermöglicht, unsere Konfigurationswerte beizubehalten, stellt er uns vor das Problem, diese beibehaltenen Werte zu lesen. Auch hier stellen uns die Implementierungsentwickler-Snippets Beispielcode zum Abrufen dieser Werte bereit, wie in den folgenden Code-Snippets dargestellt.

import configparser

def read_config():
    config = configparser.ConfigParser()

    config.read('config.ini')

    # Access values from the configuration file
    debug_mode = config.getboolean('General', 'debug')
    log_level = config.get('General', 'log_level')
    db_name = config.get('Database', 'db_name')
    db_host = config.get('Database', 'db_host')
    db_port = config.get('Database', 'db_port')

    # Return a dictionary with the retrieved values
    config_values = {
        'debug_mode': debug_mode,
        'log_level': log_level,
        'db_name': db_name,
        'db_host': db_host,
        'db_port': db_port
    }

    return config_values

if __name__ == "__main__":
    # Call the function to read the configuration file
    config_data = read_config()

    # Print the retrieved values
    print('Debug Mode',       config_data['debug_mode'])
    print('Log Level',         config_data['log_level'])
    print('Database Name', config_data['db_name'])
    print('Database Host', config_data['db_host'])
    print('Database Port', config_data['db_port'])
Nach dem Login kopieren

Abschluss

Ich sehe viele Probleme im obigen Code. Während dies für kleine Skripte durchaus akzeptabel ist, leidet der Code unter der Verwendung von Zeichenfolgenwerten, die sich auf tatsächliche Python-Variablennamen beziehen, und deren potenzielle Verbreitung über eine große Codebasis. Während dies möglicherweise durch die Verwendung globaler Konstanten gemildert wird, bin ich der Meinung, dass dies nicht skalierbar ist, da es nicht einem grundlegenden Prinzip des Softwaredesigns folgt, das von Andrew Hunt und David Thomas in ihrem bahnbrechenden Buch „The Pragmatic Programmer“ vertreten wurde, und den DRY nicht erfüllt Prinzip, auch bekannt als „Do not Repeat Yourself“.

Der Quellcode für diesen Artikel ist hier.

Siehe meinen nächsten Beitrag, der eine erste Implementierung zur Lösung einiger der von mir beschriebenen Probleme dokumentiert.

Das obige ist der detaillierte Inhalt vonAuf dem Weg zu mühelosen Python-Konfigurationsdateien Version Ø. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage