Python中文
首页
教程
问答
标签
搜索
登录
注册
在Python中自动加载
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在过去,我使用perl的AUTOLOAD工具来实现将符号延迟加载到名称空间中,并且希望在python中使用相同的功能。</p> <p>传统上,看起来最接近的是使用类和<code>__getattr__</code>类来实现这类事情。不过,我也试过在<code>sys.modules</code>中翻找,并得出以下结论:</p> <pre><code># mymod.py def greet(greeting="Hello World"): print greeting class autoload(object): def __init__(self, __name__): super(autoload, self).__init__() self.wrapped_name = __name__ self.wrapped = sys.modules[__name__] def __getattr__(self, name): try: return getattr(self.wrapped, name) except AttributeError: def f(): greet(name+" "+self.wrapped_name) return f if __name__ != "__main__": import sys sys.modules[__name__] = autoload(__name__) </code></pre> <p>从用户的角度来看,这确实是我想要的工作方式:</p> <pre><code>~> python Python 2.5.1 (r251:54863, Jan 10 2008, 18:01:57) [GCC 4.2.1 (SUSE Linux)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import mymod >>> mymod.hello() hello >>> from mymod import Hello_World >>> Hello_World() Hello_World </code></pre> <p>但让我印象深刻的是,在python中有没有一种标准的自动加载方法?</p> <p>其次,对于有经验的python开发人员来说,一个问题是“这对您来说是好的还是坏的做法”?我是一个相当有经验的python开发人员,我觉得它非常有用,但我觉得它是一个边界,我对它是否可以被视为良好实践、不良实践或类似的东西很感兴趣。</p> <p>谢谢!</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>要回答使用类模拟模块的问题:</p> <p>是的,功能不是偶然的。它从2.x系列的早期就出现了,在3.x系列中仍然有效。</p> <p>要回答延迟加载的问题:</p> <p>有几种方法可以做到这一点,每种方法都会有点神秘。使用模块模拟程序是一种很好的方法。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
3 回答
如何在pyobj中停止线程
5 回答
如何在pyobj中生成线程
4 回答
如何在pyodbc中为记录集指定游标类型?
5 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
7 回答
如何在pyodbc中使用executemany运行多个SELECT查询
2 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
3 回答
如何在pyodbc中控制连接池的大小?
6 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
5 回答
如何在pyODBC查询中参数化日期戳?
1 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
5 回答
如何在pyodb中安装所有驱动程序
6 回答
如何在pyodb嵌套循环中调用不同的查询
7 回答
如何在pyomo.environ公司modu装置
3 回答
如何在Pyomoconstraints中建模逻辑或量词
6 回答
如何在Pyomo中为约束使用数组
7 回答
如何在pyomo中使用集和范围集的多级索引?
6 回答
如何在PYOMO中分配伪二进制变量
7 回答
如何在Pyomo中创建OR约束?
5 回答
如何在Pyomo中动态地将变量添加到列表中?
3 回答