Вот ссылка на мой первый вопрос: Создание экземпляра класса из словаря?
Итак, я пытаюсь создать экземпляр класса из словаря, который содержит ключи, которых нет у класса. Например:
class MyClass(object):
def __init__(self, value1, value2):
self.attr1 = value1
self.attr2 = value2
dict = {'attr1': 'value1', 'attr2': 'value2', 'redundant_key': 'value3'}
Перед созданием экземпляра класса я должен удалить этот redundant_key
из dict
dict.pop('redundant_key', None)
new_instance = MyClass(**dict)
Проблема в том, что у меня есть несколько классов и несколько словарей с большим количеством ключей (у меня есть несколько ответов в формате json, которые представлены в виде словарей, и я хочу создать объекты из этих ответов json). Я уже нашел временное решение из предыдущего вопроса - как удалить лишние ключи. Я могу создать новый диктофон из старого диктофона только с нужными мне ключами:
new_dict = {key: old_dict[key] for key in allowed_keys}
Итак, вот код:
class MyClass(object):
def __init__(self, value1, value2):
self.attr1 = value1
self.attr2 = value2
dict = {'attr1': 'value1', 'attr2': 'value2', 'redundant_key': 'value3'}
new_instance = MyClass(**{key: dict[key] for key in allowed_keys})
Все, что мне сейчас нужно, это получить allowed_keys
. Итак, вопрос: есть ли способ получить атрибуты экземпляра класса без создания экземпляра класса?
allowed_keys
? - person luk32   schedule 08.05.2015attr1
иattr2
вallowed_keys
, когдаattr1
,attr2
являются атрибутами экземпляра класса. - person Demyanov   schedule 08.05.2015__init__
- person Demyanov   schedule 08.05.2015__init__
, а его подпись аргумента: аргументы, которые он принимает. Это другая проблема, и у нее есть решение :-) - person alexis   schedule 08.05.2015