Обновить
33

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

10
Подписчики
Отправить сообщение
Тем не менее, точки с запятой желательны после pass и break.
Не так страшны вчерашние программисты на дельфи, как они же, пишущие код для введения в заблуждение вероятного противника:
for i in range(100): a += 1; b += a;
Если мы уверены, что в списке не будет None, False и пустых строк. К примеру, список имен пользователей.

def isSomeoneThere():
    return len(activeUsers) and "Yes" or "No"

def isSomeoneThere():
    return any(activeUsers) and "Yes" or "No"
Спасибо. Исправил, чтоб не распространять дезинформацию. Действительно, перепроверил изначальный код проекта, ошибки возникали не из-за переопределенного __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

Информация

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