Python 区分导入的和全局定义的模块属性

Python 区分导入的和全局定义的模块属性,python,python-3.x,module,attributes,inspect,Python,Python 3.x,Module,Attributes,Inspect,如何区分在全局级别定义的属性和通过编程从其他模块导入的属性?例如,我想知道mymod.py中定义的最高\u协议和我的最高\u协议属于哪个模块 mymod.py的内容: from pickle import HIGHEST_PROTOCOL MY_HIGHEST_PROTOCOL = 123 在IPython中检查 In [2]: import mymod In [3]: dir(mymod) Out[3]: ['HIGHEST_PROTOCOL', 'MY_HIGHEST_PROTOCO

如何区分在全局级别定义的属性和通过编程从其他模块导入的属性?例如,我想知道mymod.py中定义的
最高\u协议
我的最高\u协议
属于哪个模块

mymod.py的内容

from pickle import HIGHEST_PROTOCOL

MY_HIGHEST_PROTOCOL = 123
IPython
中检查

In [2]: import mymod

In [3]: dir(mymod)
Out[3]:
['HIGHEST_PROTOCOL',
 'MY_HIGHEST_PROTOCOL',
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__']

你想解决的实际问题是什么?我想列出模块中定义的所有属性。你能继续往下说吗?用例是记录模块中存在的所有属性。目前系统只是忽略了这些属性,这是不好的。另一种方法是在所有模块中记录所有这些属性。这将导致冗余。这就是问题所在。附言-很高兴知道“为什么”。