Reinhold Birkenfeld wrote: > Fredrik Lundh wrote: >> Walter Dörwald wrote: >> >>> We have sys.displayhook and sys.excepthook. Why not add a sys.inputhook? >>> sys.inputhook gets passed each line entered and may return True if it has >>> processed the line inself and False if normal handling of the input should be >>> done. This allows special treatment of "quit", "exit", "help" /.../ >> so how would such a hook deal with the >> >> >>> def exit(): >> ... pass >> >>> exit >> >> case ? > > In the inputhook one would have to check for "exit" being defined at > interpreter level. Which is fairly trivial given a slight change to my proposed default input hook: def default_inputhook(statement): if statement in vars(sys.modules["__main__"]): return False try: aliased = sys.alias[statement] except KeyError: return False else: aliased() return True That is, a real variable will always shadow an alias - you need to get rid of the real variable before the alias will start working again (or else change the name of the alias). Or you can give the alias a different name via: sys.alias["exit_"] = sys.alias["exit"] Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4