В функции python нужно ли предварительно назначать значение, которое условно отображается в if? - PullRequest
2 голосов
/ 04 апреля 2020

В функции python мне нужно предварительно назначить значение, которое условно появляется при условии, если?

def func(x,y):
    if x == 1:
        z = 2
    else: pass

    if y == 1:
        print(z)
    else: pass

Я вижу здесь проблему в том, что print(z) может взорваться, если x != 1 и y == 1. Чтобы потенциально предотвратить эту ошибку, объявляю ли я z = None в начале функции или использую try-кроме, чтобы напечатать z или другие способы сделать? Какова будет лучшая практика?

Ответы [ 3 ]

2 голосов
/ 04 апреля 2020

Короткий ответ - Да.

Если вы хотите сделать что-то вроде: print(z) позже в функции, тогда z следует назначить первому.

У вас есть несколько варианты:

def func(x, y):
    if x == 1:
        z = 2
    else:
        z = None

# or
def func(x, y):
    z = None
    if x == 1:
        z = 2

# or
def func(x, y):
    z = 2 if x == 1 else None
0 голосов
/ 04 апреля 2020

Вы можете просто сделать:

def func(x,y):
    z = 2 if x == 1 else None
    print(z)

Это означает, что z всегда будет назначаться 2 или None, если x == 1 или иначе соответственно.

0 голосов
/ 04 апреля 2020

, чтобы предотвратить «взрыв», вы должны определить свою переменную в начале вашей функции или перед тем, как ее использовать, в вашем случае вы можете использовать:

def func(x, y):
    z = None
    if x == 1:
        z = 2

    if z and y == 1:
        print(z)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...