Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'exit' is not a keyword in Python, but no error occurs while using it

I learn that exit is not a keyword in Python by,

import keyword
print('exit' in keyword.kwlist)     # Output: False

But there is no reminder of NameError: name 'exit' is not defined while using it. The output of the following snippet code makes me confused. Can anyone help me out?

for i in range(5):
    print(i)
    cur=i if i<2 else exit

print(cur)
# Output
0
1
2
3
4
Use exit() or Ctrl-D (i.e. EOF) to exit

I am unable to get related info about exit from Python documentations, except for exit([code=None]).

like image 748
SparkAndShine Avatar asked May 13 '16 16:05

SparkAndShine


People also ask

Is exit a keyword in Python?

'exit' is not a keyword in Python, but no error occurs while using it - Stack Overflow. Stack Overflow for Teams – Start collaborating and sharing organizational knowledge.

What keyword is used to exit a function Python?

The return keyword is to exit a function and return a value.

Which is not a keyword in Python?

The correct answer to the question “Which of the following is not a Keyword in Python” is option (a). Val. As Val is not a correct keyword, in Python and all others are keywords.

How do you exit a program in Python?

The exit() function is a Python command to exit program and an alias of the quit() function. It makes Python more user-friendly as some may intuitively expect exit() to be the exit command and some may use quit(). Both exit() and quit() are used to exit the program.


2 Answers

Keywords are part of the python syntax. They usually have special meaning in statements (e.g. for, del, if ...). This has other consequences -- e.g. you can't make a variable with the same name as a keyword.

builtins are callable objects (e.g. functions or at least function-like) that python provides in the namespace by default. examples of builtin functions are things like sorted, id, vars, ...

It's worth noting that exit is a convenience provided when in an interactive session. It's highly encouraged to use sys.exit instead.

like image 110
mgilson Avatar answered Nov 15 '22 02:11

mgilson


exit is an instance of the Quitter class. The Quitter class defines an __repr__ method that returns the string that you see when you type exit into the shell. It also defines a __call__ method. Just as __init__ is called when you use a class like a function, __call__ is called when an instance is used like a function. Therefore, exit() calls the __call__ method, which exits the program.

like image 23
zondo Avatar answered Nov 15 '22 03:11

zondo