Space Python Ładowanie Pythona…

Dodatkowe pola wpisu

Napisz kodŚredni 2 etapy

Sama wiadomość w dzienniku często nie wystarcza, żeby zdiagnozować problem: który zawór, przy jakim ciśnieniu, na której orbicie? Każdy podsystem chce dołączać inne szczegóły, a nikt nie chce format_log() z pięćdziesięcioma opcjonalnymi parametrami.

Pozwól funkcji przyjmować pola, które ma wywołujący, a potem podawaj jej pola ze słowników.

Pozwól format_log() przyjmować dowolne dodatkowe argumenty nazwane i dopisywać każdy na końcu linii jako spację i key=value, w kolejności przekazania:

[T+00:12:05] INFO  Silniki w normie
[T+00:14:47] ERROR Zawór paliwa 2 nie odpowiada valve=2 pressure_kpa=310

Dodaj **fields po msg. W środku fields to słownik: zbuduj linię, a potem przejdź pętlą po fields.items() i dopisuj do niej.

Dopisz pola
Dowolne pola

Ukończ etap 1, aby odblokować ten etap.

Pola często przychodzą gotowe w słownikach. Przekaż je jako argumenty nazwane przez **: najpierw sam reading, potem reading i context razem:

[T+00:16:03] WARN  Silnik gorący sensor=ENG-2 temperature_c=455.2
[T+00:16:03] WARN  Silnik gorący sensor=ENG-2 temperature_c=455.2 orbit=12 station=GS-2

format_log(..., **reading) działa tak, jakbyś sam napisał sensor="ENG-2", temperature_c=455.2.

Rozpakuj słowniki
Przekazane przez **
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Dowolna liczba argumentów **kwargs

**kwargs zbiera dowolną liczbę argumentów nazwanych do słownika. Elastyczny sposób przyjmowania opcjonalnych parametrów.
dowolna-liczba-argumentow-kwargs.py
# **kwargs - dowolna liczba argumentów nazwanych

def ship_parameters(**data):
    """Wyświetla parametry statku kosmicznego."""
    print("Parametry statku:")
    for key, value in data.items():
        print(f"  {key}: {value}")
    print()

ship_parameters(name="Enterprise", ship_class="Galaxy")

ship_parameters(
    name="Voyager",
    launch_year=1977,
    speed_km_s=17,
    active=True
)
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].