我正在向模块添加动态属性,在使用之前我想验证添加的属性是否存在(在模块中).
hasattr签名是:
hasattr(object, name)
Run Code Online (Sandbox Code Playgroud)
模块不是对象,那么如何验证添加属性的存在?
Mar*_*ers 11
Python模块是一个对象.hasattr()工作得很好.
演示:
>>> import os
>>> type(os)
<type 'module'>
>>> os
<module 'os' from '/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/os.pyc'>
>>> hasattr(os, 'sep')
True
>>> hasattr(os, 'foobar')
False
Run Code Online (Sandbox Code Playgroud)
如果您有一个包含模块名称的字符串,那么您可以在sys.modules映射中查找模块对象:
>>> import sys
>>> sys.modules['os']
<module 'os' from '/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/os.pyc'>
>>> hasattr(sys.modules['os'], 'sep')
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |