Ваш return_new_copy
изменяет передаваемый параметр, что, вероятно, нежелательно. Это также переопределяет в неправильном направлении (отдавая приоритет self.attributes
)
Я бы написал это следующим образом:
def return_new_copy(self, additional_attributes):
# python<3.5 if there are only string keys:
# attributes = dict(self.attributes, **additional_attributes)
# python<3.5 if there are non-string keys:
# attributes = self.attributes.copy()
# attributes.update(additional_attributes)
# python3.5+
attributes = {**self.attributes, **additional_attributes}
return type(self)(attributes)
Несколько тонкостей: - Я обязательно скопировать оба входные атрибуты и атрибуты self - я объединяю дополнительные атрибуты поверх атрибутов self
Если вы ищете что-то, чтобы сделать это автоматически, вы можете проверить namedtuple
[115 ]
Например:
>>> C = collections.namedtuple('C', ('a', 'b'))
>>> x = C(1, 2)
>>> x
C(a=1, b=2)
>>> y = x._replace(b=3)
>>> y
C(a=1, b=3)
>>> x
C(a=1, b=2)
Дизайн UI является совершенно другим навыком. Это - одно тесно связанное с изобразительным искусством - способность ценить и создать визуальную симметрию и красоту. И по ЛЮБОЙ причине, обычно кодеры не хороши с изобразительными искусствами. Я знаю, что существуют исключения - но как правило - это содержит.
Поэтому действительно (если Вы не исключение к этому нечетному правилу) - с ним нужно иметь дело с подобным любая другая область, где Вы не естественно талантливы. Необходимо оценить, если можно быть в хороших отношениях достаточно с прерываниями, Вы добрались - или, возможно, даже потратьте немного энергетического улучшения, когда у Вас есть шанс. Однако Вы были бы лучше обслужены, разработав области, где у Вас есть способность и возможно стремящийся работать с людьми, которые сильны в области, где Вы не делаете..
А хорошая книга, касающаяся этой идеи: Теперь, Узнайте Свои Преимущества Marcus Buckingham... это - легкое чтение.
Поскольку Это отличающееся набор навыка. Навыки, требуемые быть веб-дизайнером, НЕ ЯВЛЯЮТСЯ тем же как навыками, требуемыми быть программистом. Да немного навыков могли бы наложиться, как HTML, CSS, JavaScript, но по своей природе Программисты не знают ничего из того, что делает веб-дизайн хорошим веб-дизайном, и наоборот.
RWendi
дизайн ui и разработка программного обеспечения работают над двумя различными сторонами мозга. не случается так, что разработчик сосет при разработке и наоборот, ее просто, что они пытаются сделать это с неправильной стороной мозга. никакой серьезный человек не не согласился бы.
Я разработал программу для людей вне моего социального круга и наблюдал за их поведением. Поступая так, я больше не был подвержен предубеждениям моих друзей, своей гордости и эго. Улучшая приложение, я стал более скромным и внимательным к вопросам дизайна. Я узнал, насколько важен дизайн, ориентированный на задачи, и простота. Я понял, чего стоит слишком много функций. С опытом, вы тоже.
Некоторые ссылки, которые я настоятельно рекомендую:
Некоторые ссылки и философия, которые я настоятельно рекомендую вам игнорировать: