gpt4 book ai didi

python - 访问类实例的父模块的 __all__ 列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:23 26 4
gpt4 key购买 nike

我有一个在模块 m 中定义的类 SomeClass 的实例。对于 SomeClass 的行为,我需要访问以下列表:

m.__all__

如何从 SomeClass 的实例访问这个列表?

SomeClass 的实例具有以下内置:

SomeClass.__module__ 

然而,这只是一个字符串。如何访问模块本身及其属性?

最佳答案

sys 模块包含字典 modules它将加载模块的名称映射到模块本身。与 SomeClass.__module__ 一起,您可以使用它来访问从中导入的模块 SomeClass

例如,使用这样的模块 m.py:

# m.py

__all__ = [
"A_CONSTANT",
"SomeClass",
]

A_CONSTANT = "foo"

class SomeClass: pass

...以下作品:

>>> from m import SomeClass
>>> SomeClass.__module__
'm'
>>> import sys
>>> sys.modules[SomeClass.__module__]
<module 'm' from '/path/to/m.py'>
>>> sys.modules[SomeClass.__module__].__all__
['SomeClass', 'A_CONSTANT']
>>> sys.modules[SomeClass.__module__].A_CONSTANT
'foo'

关于python - 访问类实例的父模块的 __all__ 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30139666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com