Python. Как вызвать функцию внутри условного оператора if?

Мне нужно вызвать функцию пароля в коде внутри if (пишу калькулятор). При попытке вызова появляется ошибка NameError. Можно ли вообще вызвать её?

def admpswd(validpass):
    validpass = 123
    return validpass

Код с вызовом:

elif (changeint == 3):
        print("Введите пароль:\n")
        mainpass = admpswd(validpass)
        Pswdinput = int(input())
        if (Pswdinput == mainpass):
            print("Отлично! Добро пожаловать!")
        else:
            print("Неверный пароль") 
            break
    else: break

Код ошибки:

Traceback (most recent call last):
  File "W:\****\CALC\main.py", line 34, in <module>
    mainpass = admpswd(validpass)
NameError: name 'validpass' is not defined

Ответы (2 шт):

Автор решения: Danis

у вас в функции admpswd переменная validpass не используется в том смысле что не важно что там будет поэтому от неё надо избавиться

def admpswd():
    validpass = 123
    return validpass

и место

mainpass = admpswd(validpass)

писать

mainpass = admpswd()
→ Ссылка
Автор решения: Serg Bocharov

Правильнее было бы функцию поменять на:

def admpswd(validpass):
    return validpass == 123

Тогда код упростится:

elif (changeint == 3):
        print("Введите пароль:\n")       
        Pswdinput = int(input())
        if admpswd(Pswdinput):
            print("Отлично! Добро пожаловать!")
        else:
            print("Неверный пароль") 
            break
else: break
→ Ссылка