Nov
23
作者:quke.cn |
分类:Python| GAE的第三方上传工具SDUpload。 |
| 获取谷歌地图当前位置坐标 |
| 图解SDBlog1.0Beta。 |
| VS2008安装时与Office2007的冲突 |
| 关于 |
| 留言本 |
| SDBlog介绍-开始提供下载了。 |
| VS2008中使用SVN的方法 |
| Python中文全攻略 |
| c++中抽象类、虚函数和纯虚函数的学习 |
内容载入中...
在python中有个getattr和函数,非常强大,可以用字符串的形式获得一个模块中属性,函数的引用或者叫句柄;但有个小疑问就是无法直接获得当前模块的一个属性或函数,我曾苦苦的找寻了一段时间我以为用self之类的简单的内置的属性或之类的东西来作为自身模块的引用,但不幸的是一直没找到,可能没有这种东西。
最后解决的方式就是在当前模块中引入自己,用from import方式来引入似乎让人感觉不太正常,为什么要在自身中在引入自己呢?实在没办法就退而求其次,在用到的地方在动态的引入吧。最后的解决方式就是使用__import__('模块路径')来引入自己。代码如下:
- #包名:lib.templatetags
- #模块名:tags.py
- class temClass(object):
- __init__(self):
- pass
- def main():
- selfMod = __import__('lib.templatetags.tags')
- getattr(selfMod.templatetags.tags, temClass)
其中selfMod = __import__('lib.templatetags.tags') 执行完得到是lib的引用,但是如果selfMod = __import__('lib')得到就是包含了更过的引用,这些是我不需要的,不能因此增加服务器的负担。
代码中是获得属性的例子,设置或删除属性的例子同理。
内容载入中...
固定链接:http://www.quke.cn/log-208.html
2008-11-23 7:16 PM |
浏览:
评论:
发布于:2010-01-25 8:07 PM
sys.modules[__name__]