Как стать автором
Обновить
34
0

Пользователь

Отправить сообщение
Спасибо. Исправил, чтоб не распространять дезинформацию. Действительно, перепроверил изначальный код проекта, ошибки возникали не из-за переопределенного __getattr__().
Спасибо за поправки.
Не в 100%. Если условие имеет смысл вынести в отдельную функцию (не lambda), то кроме filter вариантов не остается.
А можно пример от несогласного? =)
А то так и не узнаю.

Едиственное, что приходит на ум:

class mydict(dict):
  self.__getattr__(self, key):
    if key=='smile':
      return "Улыбнитесь, вас снимают! =)"
    else:
      return super(mydict, self).__getattr__(key)
Заменил табы на пробелы. Правда, привык к ширине табуляции 2, вместо 4 желательных по PEP-8.
Тем не менее, часто натыкаюсь на

def getUserData(user):
  if user.authorized:
    user.doAnything()
    # еще куча кода
  else:
     raise UserError('Not authorized')
Я бы вообще не рекомендовал переобъявлять __getattr__(). Не могу представить, зачем это вообще может понадобиться.
Я тоже не очень понял, в чем плюсы. мало того, что невозможно сделать что-то вроде a[«key_»+s], так еще возникают трудности с обращением к атрибутам.

Списковые выражения сам с удовольствием использую. Единственное: надо засмечать случаи, когда условие становится чересчур раздутым и лучше уже сделать другим, более очевидным способом.
12 ...
7

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность