dir里面的功能

Hov*_*tar 4 python scope

Python有一个很好的功能,它提供了一个对象的内容,就像调用它的所有方法和现有变量一样dir().但是,当在函数中调用dir时,它只查看函数的范围.因此,调用dir()函数具有与在函数外调用函数不同的值.例如:

dir()
> ['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
def d():
  return dir()
d()
> []
Run Code Online (Sandbox Code Playgroud)

有没有办法可以改变d中dir的范围?

Mar*_*ers 9

dir() 没有参数默认为当前范围(键locals(),但已排序).如果你想要一个不同的范围,你必须传入一个对象.从文档:

如果没有参数,则返回当前本地范围中的名称列表.使用参数,尝试返回该对象的有效属性列表.

对于全球范围,使用sorted(globals()); 它与dir()在模块级别调用的结果完全相同.