## 8.8.1 Example

Here's a function that prompts for a password with echoing turned off. Note the technique using a separate `termios.tcgetattr()` call and a `try ... finally` statement to ensure that the old tty attributes are restored exactly no matter what happens:

    def getpass(prompt = "Password: "):
        import termios, TERMIOS, sys
        fd = sys.stdin.fileno()
        old = termios.tcgetattr(fd)
        new = termios.tcgetattr(fd)
        new[3] = new[3] & \~TERMIOS.ECHO          # lflags
        try:
            termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
            passwd = raw_input(prompt)
        finally:
            termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
        return passwd