【问题标题】:dir(lxml) doesn't show etreedir(lxml) 不显示 etree
【发布时间】:2017-07-31 06:52:56
【问题描述】:

据我所知,dir 函数将生成该模块中存在的所有变量和对象。但是当我执行 dir(lxml) 时,它不会在变量和方法列表中显示 etree。我得到的输出是

['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'get_include']

但我可以使用以下方法导入 etree:

from lxml import etree

那么 etree 是如何定义的,它不会出现在 dir 函数中,而只能使用 import 语句导入

【问题讨论】:

    标签: python lxml


    【解决方案1】:

    lxml是一个python包,里面有etree源码。

    在这种情况下,您正在从您的即 python2.7/site-packages/lxml/ 导入源代码

    它实际上不是来自 lxml 的方法或变量

    如何定义一个python包:

    python 检测包的唯一要求是拥有一个您可能经常看到的__init__.py 文件。如果__init__.py 文件为空也没关系,但它必须存在。你可以查看这个例子http://pythoncentral.io/how-to-create-a-python-package/

    您只需:

    1. 创建一个目录并为其命名您的包名。
    2. 将您的课程放入其中。
    3. 在目录中创建__init__.py文件。

    【讨论】:

    • 你能给我一个例子吗?假设我希望“a.py”成为 lxml,“b.py”成为 etree。如何定义这些文件。
    • python 检测包的唯一要求是拥有一个您可能经常看到的 init.py 文件。如果 init.py 文件为空也没关系,但它必须存在。您可以查看此示例pythoncentral.io/how-to-create-a-python-package 我编辑答案,因为它转义了下划线
    • 我编辑了答案。还要注意覆盖 python 标准库。如果您创建一个名为 random 的包,它将覆盖 python randome 模块
    • 谢谢。现在我对python中的包和模块很清楚了。
    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2012-08-17
    • 2013-01-09
    • 2021-05-29
    • 1970-01-01
    • 2016-04-09
    • 2014-03-13
    相关资源
    最近更新 更多