Можно ли по словарю инициализоровать переменные класса. Python3.8
Можно ли каким-то образом присвоить каждой переменной класса значения переданные в словаре. К примеру, у класса есть переменные: A, B, C, D -, и я передаю конструктору класса словарь:
dictionary = {'B': 5, 'A': 2, 'C': 45}
Конструктор должен обратиться к переменным класса по именам ключей из словаря и задать им эти значение, при этом ключи могут находиться в произвольном порядке.
Пример класса:
class Example:
def __init__(self, d: dict):
self.A, self.B, self.C = int
# тут должен быть код для инициализации переменных переданных в словаре
if __name__ == '__main__':
dictionary = {'B': 5, 'A': 2, 'C': 45}
ex = Example(dictionary)
print(ex.B) # Должно вывести: "5".
Ответы (4 шт):
Автор решения: SmellyNS
→ Ссылка
В конструкторе класса для каждого элемента.
self.A = dictionary.get('A')
Пример:
class Foo:
def __init__(self, dictionary: dict):
self.A = dictionary.get('A')
self.B = dictionary.get('B')
self.C = dictionary.get('C')
dictionary = {'B': 5, 'A': 2, 'C': 45, 'D': 111}
foo = Foo(dictionary)
print(foo.A, foo.B, foo.C)
# 2 5 45
Автор решения: gil9red
→ Ссылка
Можно через оператор ** разложить значения словарей в аргументы конструктора:
class Foo:
def __init__(self, A, B, C):
self.A = A
self.B = B
self.C = C
dictionary = {'B': 5, 'A': 2, 'C': 45}
foo = Foo(**dictionary)
print(foo.A, foo.B, foo.C)
# 2 5 45
Автор решения: vadim vaduxa
→ Ссылка
class Foo:
def __init__(self, dictionary: dict):
for attr in dictionary:
setattr(self, attr, dictionary[attr])
# def __init__(self, dictionary: dict):
# self.__dict__.update(dictionary)
if __name__ == '__main__':
dictionary = {'B': 5, 'A': 2, 'C': 45}
foo = Foo(dictionary)
print(foo.A, foo.B, foo.C) # 2 5 45
Автор решения: description009
→ Ссылка
for i in range(2,12):
if i != 11:
Name=tabel.find_element(By.XPATH,f"/html/body/div[7]/div[3]/div[1]/div[1]/div[2]/div[2]/table/tbody/tr[{i}]/td[1]").text
Value=tabel.find_element(By.XPATH,f"/html/body/div[7]/div[3]/div[1]/div[1]/div[2]/div[2]/table/tbody/tr[{i}]/td[2]").text
charateridic[f"{Name}"] = Value
continue
У меня сработало так, надеюсь помог