Python Glossary English

все Python 3getpassфункция

getpass.getpass()

ввод пароля

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

Синтаксис

password = getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)

Ловушка: ввод читается с терминала (/dev/tty на Unix, консоль на Windows), а не из sys.stdin, так что 'echo pw | python app.py' пароль не подставит. В IDE без настоящего терминала эхо не отключить: придёт GetPassWarning, а пароль будет виден. В тестах и автопроверке функцию подменяют через unittest.mock.patch. echo_char='*' (3.14+) показывает звёздочки вместо пустоты.

Примеры

import getpass
from unittest import mock
with mock.patch('getpass.getpass', return_value='s3cret'):
    password = getpass.getpass('Пароль: ')  # настоящий вызов ждал бы ввода с терминала
print(len(password))  # → 6
# Python 3.14+
import getpass, inspect
print('echo_char' in inspect.signature(getpass.getpass).parameters)  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности