Оператор Python pass
Оператор передачи Python pass используется для создания пустых блоков кода и пустых функций.
Примеры операторов передачи Python
Давайте посмотрим на несколько примеров с использованием pass.
1. инструкция pass в блоке кода
Допустим, нам нужно написать функцию для удаления всех четных чисел из списка. В этом случае мы будем использовать цикл for для обхода чисел в списке.
Если число делится на 2, то ничего не делаем. В противном случае мы добавляем его во временный список. Наконец, верните вызывающему абоненту временный список, содержащий только нечетные числа.
Python не поддерживает пустые блоки кода. Таким образом, мы можем использовать здесь оператор pass для отсутствия операции в блоке if-condition.
def remove_evens(list_numbers): list_odds = [] for i in list_numbers: if i % 2 == 0: pass else: list_odds.append(i) return list_odds l_numbers = [1, 2, 3, 4, 5, 6] l_odds = remove_evens(l_numbers) print(l_odds)
Здесь нам не нужны никакие операции в блоке if-condition. Итак, мы использовали оператор pass для бездействия.
2. инструкция pass для пустой функции
В Python нет концепции абстрактных функций. Если нам нужно определить пустую функцию, мы не можем написать ее так.
def foo(): # TODO - implement later
Выход: IndentationError: ожидается блок с отступом
Мы можем использовать оператор pass для определения пустой функции. У функции будет инструкция, но она ничего не сделает.
Можно ли иметь в функции несколько операторов?
Да, у нас может быть несколько операторов прохода в функции или блоке кода. Это потому, что оператор pass не завершает функцию. Его единственная работа — предоставить пустой оператор.
def bar(): pass print('bar') pass if True: pass pass print('True') else: print('False') pass pass
Зачем нужен?
- Оператор передачи Python очень полезен при определении пустой функции или пустого блока кода.
- Наиболее важное использование оператора pass — создать контракт для классов и функций, которые мы хотим реализовать позже. Например, мы можем определить модуль Python следующим образом:
class EmployeeDAO: def get_emp_by_id(self, i): """ TODO: implement this function later on :param i: employee id :return: employee object """ pass def delete_emp(self, i): pass # This function will read Employees CSV Data file and return list of Employees def read_csv_file(file): pass
Мы можем приступить к реализации. Сторонний код знает функции и методы, которые мы будем реализовывать, поэтому они могут продолжить их реализацию.