如何从类别名中获取完全限定的类名

2024-04-25 08:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

文件具有导入:

from lxml import etree

或使用别名

from lxml import etree as tree

如何只使用something(etree)something(tree)来获得lxml.etree?你知道吗

同样的问题更深入地探讨了如何通过仅仅使用something(etree._Element)something(tree._Element)来获得lxml.etree._Element?你知道吗

它可以用于在验证函数的正确参数类型时更容易地构造错误消息。你知道吗

示例:

if isinstance(xml_doc, etree._Element):
        expected_type = something(etree._Element)
        msg = f'Expected {expected_type}, received {type(xml_doc)}'
        raise TypeError(msg)

在PHP中是::class。你知道吗

更新:一个新问题是:etree._Element是受保护的成员,不应直接访问。林特抱怨。你知道吗

Access to a protected member _Element of a client class (protected-access)

Tags: 文件fromimporttreedoctypemsgxml
2条回答

考虑到etree是一个类,可以使用以下方法获取类名:

from lxml import etree as tree

print(tree.__name__)

加上Dhaliwhal的答案,您还可以得到带有tree.__module__的模块

编辑:这可能必须由模块编程才能正常工作。我只是在tkinter上试过,因为我没有安装那个模块。你知道吗

编辑2:我刚刚安装了lxml,正如Bruno所指出的,就是这样。我的错误是没有用正确的模块进行测试。;) 示例:

from tkinter import Label as lb
print(lb.__module__)

相关问题 更多 >