Python3 klasa ze zmienną ilością argumentów w słowniku
Author: refactoPublished:
Categories: Ubuntu
Tags: pythin3
Tworząc klasy w python3, preferuje przekazywać jej jeden argument – jako słownik (eng. dictionary). A za pomocą małej sztuczki, nie zmuszać się do podawania i pamiętania wszystkich elementów konfigu.
#!/usr/bin/env python3
class ClassConfig ():
param1 = 1
param2 = "cos"
def __init__(self, config):
if config.__contains__("param1"):
self.param1 = config["param1"]
if config.__contains__("param2"):
self.param2 = config["param2"]
def test(self):
print(self.param1)
print(self.param2)
config = {"param2": 12}
c = ClassConfig(config)
c.test()
Co tu się dzieje. Klasa na początku inicjuje domyślne parametry | argumenty klasy.
Zabezpiecza to nas przed sytuacją w której programista, tworząc egzemplarz klasy nie podaje żadnych argumentów.
Konstruktor __init__()
przypisuje wartości zmiennym, podane przy tworzeniu egzemplarza klasy.
Zakładając że w słowniku config
podajemy tylko nie które klucze (keys) słownika, metoda __contains__
poratuje nas przed błędem komunikującym brak inicjowanego klucza.
Jeżeli znacie lepsze rozwiązanie, na zmienną ilość argumentów w klasach python’a zapraszam do komentarza.
Moje Python moduły