Вы можете использовать метод, чтобы проверить, является ли объект None
@staticmethod
def assign_attribute(attribute):
if attribute is not None:
return attribute.text
return None
А затем просто вызовите его и назначьте текст или None, если атрибут равен нулю:
obj.attribute1 = assign_attribute(attribute1)
obj.attribute2 = assign_attribute(attribute2)
Теперь у вас есть только один оператор "если".
Редактировать
В этом коде предполагается, что вы впервые создаете и инициализируете объект из XML-файла, если obj.attribute1
уже содержит значение, а затем вы используете метод assign_attribute
, а атрибут равен None
, исходное значение будет очиститься.
Если вы хотите сохранить существующие значения, метод может выглядеть примерно так:
@staticmethod
def assign_attribute(xml, attribute_name, current_value):
attribute = xml.find(attribute_name)
if attribute is not None:
return attribute.text
elif current_value is not None:
return current_value
else
return None
obj.attribute1 = assign_attribute(xml_element, 'ATTRIBUTE1', obj.attribute1)
obj.attribute2 = assign_attribute(xml_element, 'ATTRIBUTE2', obj.attribute2)