The output of dir() when called without arguments is almost the same as locals() , but dir() returns a list of strings, and locals() returns a dictionary, and you can update this dictionary to add new variables.
dir(...) dir([object]) -> list of strings If called without an argument, return the names in the current scope. locals(...) locals() -> dictionary Update and return a dictionary containing the current scope local variables.
A type:
>>> type(locals()) <type 'dict'> >>> type(dir()) <type 'list'>
Updating or adding new variables with locals() :
In [2]: locals()['a']=2 In [3]: a Out[3]: 2
using dir() , however this does not work:
In [7]: dir()[-2] Out[7]: 'a' In [8]: dir()[-2]=10 In [9]: dir()[-2] Out[9]: 'a' In [10]: a Out[10]: 2
source share