Рубрики
Без рубрики

Выписка Python Pass.

Список проходов ничего не делает, когда выполняется. Вы можете использовать его в качестве заполнителей для будущего кода, чтобы вы могли сначала сосредоточиться на структуре высокого уровня и реализовать детали позже. Например, функции, петли, определения классов или если операторы требуют хотя бы одного оператора в их блоке отступа. Подумайте о перепроверенном выписке … Выписка Python Pass Подробнее »

Автор оригинала: Chris.

пройти Заявление ничего не делает при выполнении. Вы можете использовать его в качестве заполнителей для будущего кода, чтобы вы могли сначала сосредоточиться на структуре высокого уровня и реализовать детали позже. Например, функции, петли, определения классов или если операторы требуют хотя бы одного оператора в их блоке отступа. Подумайте о выписке Pass как «TODO», которая сохраняет ваш код синтаксически не поврежден.

Давайте рассмотрим это использование для разных типов блоков отступа.

Python Pass в определении функции

Вы можете использовать пройти Заявление как тело ваших определений функций, чтобы поддержать код синтаксически неповрежденно и сосредоточиться на структуре высокого уровня. На более позднем моменте во времени вы можете реализовать тело функции, когда доработана грубая структура.

В следующем примере вы создаете два фиктивных функция распознать_имаж () и read_image () Отказ Функции еще ничего не делают, но код уже синтаксически правильный, и вы можете реализовать функциональные возможности позже, поскольку вы завершили структуру высокого уровня вашей программы.

def read_image():
    pass

def recognize_image(pixels):
    pass

pixels = read_image()
result = recognize_image(pixels)

print('Your Image Contains:')
print(result)

Вывод выглядит следующим образом:

Your Image Contains:
None

Позже вы можете заполнить пробелы, заменив пройти заявления с вашим реальным кодом.

💡  Если бы вы покинули пройти код не будет запускать, потому что вы получите IndentationError: ожидается, что блок с отступом Отказ Чтобы исправить это, многие кодера используют оператор PASC в качестве оператора «Dummy»

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

Python Pass в определении метода

Вы можете использовать пройти Заявление как тело вашего метода определения, чтобы соответствовать коду синтаксически не повреждено и сосредоточиться на структуре высокого уровня. В более позднем моменте вы можете затем реализовать тело метода, когда доработана грубая структура.

В следующем примере создается изображение класса с тремя методами:

  • Метод конструктора __init __ () создать экземпляр класса.
  • Метод распознать () Это выполняет какой-то алгоритм распознавания изображений для определения содержания изображения.
  • Метод read_from_file () Это загружает данные из файла изображения, хранящегося на вашем компьютере.

Вы не хотите идти в неверную реализацию Nitty-Gritty, поэтому вы сначала создаете этот код высокого уровня. Поскольку тела метода состоят только из выписки с прохождение, код ничего не делает Но это уже синтаксически правильно И это поможет вам быстро понять большую картину.

class Image:

    def __init__(self):
        pass


    def recognize(self):
        pass


    def read_from_file(self, filename):
        pass


img = Image()
print(img.recognize())
# None

Позже вы можете заполнить пробелы, заменив пройти заявления с вашим реальным кодом.

Python Pass в определении класса

Вы можете использовать пройти Заявление как тело определения вашего класса также. В дополнение к персонажу «ToDo», обсуждаемый в предыдущих двух разделах, это имеет дополнительное преимущество: вы можете создать пустой объект определенного класса и динамически добавлять методы к нему!

В следующем коде вы создаете два экземпляра Data_1 и Data_2 из пустой класс Wrapper My_data, который использует оператор Pass для заполнения организма фиктивным значением.

После создания вы динамически добавляете новые атрибуты в ваши экземпляры, такие как А , b , C , враг и Друг Отказ Эта способность Python динамически оценить тип объекта и даже изменить его после его создания Утка, набрав Отказ

class My_Data:
    pass


data_1 = My_Data()
data_1.a = 'hi'
data_1.b = 42
data_1.c = 'friend'


data_2 = My_Data()
data_2.enemy = 'friend'
data_2.friend = 'enemy'


print(data_1.a, data_2.enemy)
# hi friend

Здесь вы видели альтернативное использование пройти Заявление, где он использовался для создания пустого гибкого определения класса.

Python проходит, если Определение блока

Вы можете использовать пройти Заявление как тело вашего блока. Опять же, цель в основном для заполнения пробелов позже.

Вот простой пример, который требует некоторых пользователей вход и проверяет, набрал ли пользователь в значении '42' Отказ

user_input = input()

if user_input == '42':
    print('Yay!')
else:
    pass

Вот выходы двух прогонов этой программы, где я положил 42 и 41 секунду:

Идея здесь состоит в том, чтобы поставить вашу ментальную ноту, чтобы добавить ветку остального в следующем коде, чтобы вы этого не забыли.

Python Pass в обработке исключений

Вы можете использовать пройти заявление, чтобы игнорировать исключения, которые были пойманы. Без этого утверждения исключение, вероятно, прекращает вашу программу. Но с пустым кроме Блокируйте с использованием оператора Pass, пойманное исключение не прекращает вашу программу.

Вот пример:

numbers = [12,1,0,45,56]
for number in numbers:
    try:
        print('result is {}'.format(1/number))
    except Exception as e:
        pass

Выход просто:

result is 0.08333333333333333
result is 1.0
result is 0.022222222222222223
result is 0.017857142857142856

Нет исключения, отсутствие предупреждения видно – даже если мы знаем, что это произошло для номер = 0 Потому что мы пытались разделить ноль!

Резюме

Синтаксически Python требует, чтобы эти кодовые блоки, такие как Если , кроме , def , класс не может быть пустым. Однако пустые блоки кода полезны во многих контекстах. В этих контексте, когда в блоках кода ничего не должно быть сделано, вы можете использовать пройти утверждение, чтобы избежать IndentationError Отказ Теоретически, вы могли бы использовать любое другое утверждение, но большинство будет иметь побочные эффекты и за конвенцию, вы должны использовать пройти Заявление для блока «пустой» код.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-pass-statement/”