• [^] # Re: réponse 4

    Posté par (site web personnel) . En réponse au journal le défi du challenge : qu'affiche ce code. Évalué à 3.

    d'après mon interprétation de la doc pour del ("Deletion of a name removes the binding of that name from the local or global namespace, depending on whether the name occurs in a global statement in the same code block."), je pense qu'on peux voir del bla comme un sucre syntaxique pour del locals()["bla"]

    E.g.:

    >>> a = 1
    >>> a
    1
    >>> locals()
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1}
    >>> del locals()["a"]
    >>> a
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    NameError: name 'a' is not defined