Is `id` a keyword in python?

PythonKeyword

Python Problem Overview


My editor (TextMate) shows id in another colour (when used as variable name) than my usual variable names. Is it a keyword? I don't want to shade any keyword...

Python Solutions


Solution 1 - Python

id is not a keyword in Python, but it is the name of a http://docs.python.org/library/functions.html#id">*built-in function*.

The keywords are:

and       del       from      not       while
as        elif      global    or        with
assert    else      if        pass      yield
break     except    import    print
class     exec      in        raise
continue  finally   is        return
def       for       lambda    try

Keywords are invalid variable names. The following would be a syntax error:

if = 1

On the other hand, built-in functions like id or type or str can be shadowed:

str = "hello"    # don't do this

Solution 2 - Python

You can also get help from python:

>>> help(id)
Help on built-in function id in module __builtin__:

id(...)
    id(object) -> integer

    Return the identity of an object.  This is guaranteed to be unique among
    simultaneously existing objects.  (Hint: it's the object's memory address.)

or alternatively you can question IPython

IPython 0.10.2   [on Py 2.6.6]
[C:/]|1> id??
Type:           builtin_function_or_method
Base Class:     <type 'builtin_function_or_method'>
String Form:    <built-in function id>
Namespace:      Python builtin
Docstring [source file open failed]:
    id(object) -> integer

Return the identity of an object.  This is guaranteed to be unique among
simultaneously existing objects.  (Hint: it's the object's memory address.)

Solution 3 - Python

Just for reference purposes:

Check if something is a keyword in Python:

>>> import keyword  
>>> keyword.iskeyword('id')
False

Check all the keywords in Python:

>>> keyword.kwlist
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

Solution 4 - Python

It's a built in function:

id(...)
    id(object) -> integer
    
    Return the identity of an object.  This is guaranteed to be unique among
    simultaneously existing objects.  (Hint: it's the object's memory address.)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAufwindView Question on Stackoverflow
Solution 1 - PythonGreg HewgillView Answer on Stackoverflow
Solution 2 - PythonjoaquinView Answer on Stackoverflow
Solution 3 - PythonStefan van den AkkerView Answer on Stackoverflow
Solution 4 - PythonnakedfanaticView Answer on Stackoverflow