Идиомы Python

Введение

Примеры

Словарные инициализации ключа

Предпочитают dict.get метод , если вы не уверены , что если ключ присутствует. Это позволяет вам вернуть значение по умолчанию, если ключ не найден. Традиционный метод dict[key] поднимет KeyError исключение.

Вместо того, чтобы делать

 def add_student():
    try:
        students['count'] += 1
    except KeyError:
        students['count'] = 1

 

Делать

 def add_student():
        students['count'] = students.get('count', 0) + 1 

Переключение переменных


Используйте проверку истинности значения

Python неявно преобразует любой объект в логическое значение для тестирования, поэтому используйте его везде, где это возможно.

 # Good examples, using implicit truth testing
if attr:
    # do something

if not attr:
    # do something

# Bad examples, using specific types
if attr == 1:
    # do something

if attr == True:
    # do something

if attr != '':
    # do something

# If you are looking to specifically check for None, use 'is' or 'is not'
if attr is None:
    # do something

 

Как правило, это создает более читаемый код и, как правило, намного безопаснее при работе с неожиданными типами.

Нажмите здесь для получения списка того , что будет оцениваться в False .

Проверка на «__main__», чтобы избежать неожиданного выполнения кода

Это хорошая практика , чтобы проверить программу вызывающей __name__ переменную перед выполнением кода.

 import sys

def main():
    # Your code starts here

    # Don't forget to provide a return code
    return 0

if __name__ == "__main__":
    sys.exit(main())


 

Использование этого шаблона гарантирует, что ваш код выполняется только тогда, когда вы ожидаете, что он будет; например, когда вы запускаете файл явно:

 python my_program.py


 

Преимущество, однако, приходит если вы решили import файл в другой программе (например , если вы пишете его как часть библиотеки). Вы можете import файл, а __main__ ловушка будет гарантировать , что код не выполняется неожиданно:

# A new program file
import my_program        # main() is not run

# But you can run main() explicitly if you really want it to run:
my_program.main()

Синтаксис

Параметры

Примечания