web-dev-qa-db-fra.com

`Id` est-il un mot-clé en python?

Mon éditeur (TextMate) affiche id dans une autre couleur (lorsqu'il est utilisé comme nom de variable) puis mes noms de variables habituels. Est-ce un mot-clé? Je ne veux masquer aucun mot clé ...

53
Aufwind

id n'est pas un mot-clé en Python, mais c'est le nom d'un ( fonction intégrée .

Les mots clés sont :

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

Les mots clés sont des noms de variable non valides. Voici une erreur de syntaxe:

if = 1

D'un autre côté, les fonctions intégrées comme id ou type ou str peuvent être masquées:

str = "hello"    # don't do this
58
Greg Hewgill

Vous pouvez également obtenir de l'aide de 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.)

ou bien vous pouvez interroger 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.)
17
joaquin

Juste pour fins de référence :

Vérifiez si quelque chose est un mot-clé en Python:

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

Vérifiez tous les mots clés en 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']
8

C'est une fonction intégrée:

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.)
7
nakedfanatic