Лучший и самый точный способ думать pass- это способ явно сказать переводчику ничего не делать. Таким же образом следующий код:
def foo(x,y):
return x+y
означает «если я вызову функцию foo (x, y), суммирую два числа, которые представляют метки x и y, и верну результат»,
def bar():
pass
означает «Если я вызываю функцию bar (), то ничего не делаю».
Другие ответы довольно правильные, но они также полезны для нескольких вещей, которые не включают места.
Например, в коде, над которым я работал совсем недавно, необходимо было разделить две переменные, и делитель мог быть равен нулю.
c = a / b
очевидно, выдаст ZeroDivisionError, если b равно нулю. В этой конкретной ситуации оставление c в качестве нуля было желательным поведением в случае, когда b было равно нулю, поэтому я использовал следующий код:
try:
c = a / b
except ZeroDivisionError:
pass
Другое, менее стандартное использование - удобное место для установки точки останова для вашего отладчика. Например, я хотел, чтобы часть кода врезалась в отладчик на 20-й итерации оператора for ... in. Так:
for t in range(25):
do_a_thing(t)
if t == 20:
pass
с точкой останова на проходе.
passбыло бы полезно, если вы хотите переопределить метод в подклассе, чтобы ничего не делать.