为什么在`dir()`输出中省略了某些功能?

时间:2019-01-16 07:34:34

标签: python pycharm

在由PyCharm启动的Python控制台中,runfile似乎是一个导入函数:

In[21]: runfile
Out[21]: <function _pydev_bundle.pydev_umd.runfile(filename, args=None, wdir=None, is_module=False, global_vars=None)>

由于它是本地范围内的名称,因此不应该在dir()的输出中列出它吗?

In[22]: print(dir())
['In', 'Out', '_', '_12', '_13', '_14', '_15', '_16', '_17', '_18', '_19', '_21', '_3', '_5', '_6', '_7', '_8', '__', '___', '__builtin__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_dh', '_i', '_i1', '_i10', '_i11', '_i12', '_i13', '_i14', '_i15', '_i16', '_i17', '_i18', '_i19', '_i2', '_i20', '_i21', '_i22', '_i3', '_i4', '_i5', '_i6', '_i7', '_i8', '_i9', '_ih', '_ii', '_iii', '_oh', 'a', 'absolute', 'exit', 'get_ipython', 'numpy', 'quit', 'sys']

1 个答案:

答案 0 :(得分:2)

好问题。因为runfile是内置的,就像dir()本身一样。

如果不带参数的dir()可以列出所有可用的调用,它也应该列出自己的内容...

Python shell不仅会在本地范围内搜索名称,还会在内置模块中搜索名称。

您可以在dir中找到runfiledir(__builtin__)

相关问题