易截截图软件、单文件、免安装、纯绿色、仅160KB

python动态导入模块、检查模块是否安装

参考链接:http://www.woodpecker.org.cn/diveintopython/functional_programming/dynamic_import.html
一 动态导入模块
Python的import不能接受变量,所以应该用 __import__函数来动态导入。
如下的代码无法正常导入模块
modules = ['OpenSSL', 'Crypto', 'MySQLdb', 'sqlite3', 'zope.interface', 'pyasn1', 'twisted', 'django']
for each in modules:
try:
import each
except Exception, e:
print e

这样导入会抛出 No module named each
的异常
将 import each 改为 __import__(each)就可以正常导入了。
二 检查模块是否安装
使用__import__函数也可以用来检查模块是否已安装,略微修改上面的代码即可。
使用imp.find_module()来检查不方面,如find_module('zope.interface')会抛出异常——因为这个函数无法查找子模块。
模块加载后,就可以在sys.module这个字典里找到加载的模块名了。


相关文档:

Python的内存泄漏及gc模块的使用

Python的内存泄漏及gc模块的使用
                  -- 6.11日错误修正版
            
Horin|贺勤
        Email: horin153@msn.com ......

Python 线程同步

多个执行线程经常要共享数据,如果仅仅读取共享数据还好,但是如果多个线程要修改共享数据的话就可能出现无法预料的结果。
    假如两个线程对象t1
和t2
都要对数值num=0
进行增1运算,那么t1
和t2
都各对num
修改10
次的话,那么num
最终的结果应该为20
。但是如果当t1
取得num
的值时(假如此 ......

python算法实践5 直接选择排序

#直接选择排序
def SelectSort(mylist):
size = len(mylist)
i = 0
for i in range(0, size):
k = i
for j in range(i + 1, size):
if mylist[j] < mylist[k]:
k = j

if k != i:
tmp = mylist[i]
......

python学习1 使用类

#使用类
class CPerson:
#类变量好比C++中的静态成员变量
population = 0

def SayHi(self):
print('Hello World')
def HowMany(self):
if CPerson.population == 1:
print('I am the only person here.')
else:
print(('We have %d perso ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号