为什么__dir __()不适用于python中的模块?

杰弗里

test_module.py:

def __dir__():
    return ['test']

my_module.py:

import test_module
print dir(test_module)

我期望的结果应该是['test'],但实际上,结果是:

['__builtins__', '__dir__', '__doc__', '__file__', '__name__', '__package__']

为什么__dir__()我自己客户无法使用?

马丁·彼得斯(Martijn Pieters)

为什么需要限制模块列出的内容?dir()是主要的调试工具。

魔术方法通常在对象类型dir()查找,因此对于实例,查找type(instance).__dir__您的函数不在module类型上,而是在模块实例上。module但是,您无法扩展类型,因此无法为模块提供自定义__dir__方法。

如果您想限制什么from yourmodule import *进口,那么使用__all__代替。它应该是列表,而不是函数。有关详细信息,请参见import语句文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在Python中将“ dir()”命名为“ dir”?

为什么CSS过滤器不适用于Chrome中的SVG元素?

为什么HTML中“ <input>”标记中的“ size”属性仅适用于TEXT而不适用于NUMBER?

为什么Map在Groovy中不适用于GString?

为什么多态性不适用于C ++中的数组?

为什么证明和锚点不适用于Python Tkinter的标签

为什么条件渲染不适用于vue.js中的表单输入

为什么VUE js中的function不适用于按钮组件,而适用于按钮html标签?

为什么样式不适用于princexml中的xml

为什么flex-end不适用于列表中的最后一项?

为什么C ++中的“不完整类型错误”不适用于嵌套类

RTSP流不适用于python,但适用于VLC。为什么?

为什么 uglify 不适用于我在 gulp 中的 javascript 文件

为什么 scikit-image 不适用于 Python3?

为什么 R 中的多边形适用于全曲线而不适用于半曲线?

为什么 Python UAC 请求不适用于其中包含空格的路径?

为什么我的数据保存不适用于 Python 上的 pickle?

在 Python 中编译和连接 C DLL 适用于 Unix,但不适用于 Windows。这样做的正确方法是什么?

为什么代码不适用于 Python 字典

为什么我的函数适用于矩阵但为什么不适用于向量?

为什么它不适用于 Python 和 discord.py

为什么 addClass 不适用于 Angular 中的 DOM 元素?

为什么 Match("text", A:A) 函数不适用于 Excel 中的文本

为什么 howSum 解决方案适用于 Javascript 而不适用于 Python?(动态编程)

为什么此解决方案适用于 Javascript 而不适用于 Python?(动态编程)

为什么`dir`不适用于从“当前命名空间var”获取的当前命名空间 - `*ns*`

为什么 Python 数学不适用于变量?

为什么文本 onTapGesture 不适用于 SwiftUI 中的加宽框架?

为什么在 Idris 中,`clockTime` 似乎不适用于基准测试?