Python3 klasa ze zmienną ilością argumentów w słowniku

Author: refacto
Published:
Categories: Ubuntu
Tags:

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

Your email address will not be published. Required fields are marked *

Name *
Email *

This site uses Akismet to reduce spam. Learn how your comment data is processed.