Python importlib

python importlib

OpenStack源代码中有类似代码,所以测试下这个模块的作用。

代码结构

[root@ceph01 python]# ll
总用量 24
drwxr-xr-x. 2 root root    6 11月 17 10:13 bak
-rw-r--r--. 1 root root  373 12月 23 12:30 call.py
-rw-r--r--. 1 root root  323 12月 23 12:34 call.pyc
drwxr-xr-x. 3 root root   76 11月 17 17:29 conf
drwxr-xr-x. 3 root root  110 12月 23 12:32 modu
drwxr-xr-x. 3 root root 4096 12月  2 15:51 ssh
-rw-r--r--. 1 root root  219 12月 23 12:38 test2.py
-rw-r--r--. 1 root root 3004 12月 23 12:35 test.py

call模块执行效果

python call.py
1,2,3,4
<type 'unicode'>
[[1, 2, 3, 4]]相加元素和为10

导入call并动态执行

#!/usr/bin/env python
#coding:utf8
import importlib #导入importlib模块,importlib模块用于动态导入
mod = importlib.import_module('call')

执行

python test2.py 
1,2,3,4
<type 'unicode'>
[[1, 2, 3, 4]]相加元素和为10

导入call并赋值给mod打印mod

[root@ceph01 python]# cat test2.py 
#!/usr/bin/env python
#coding:utf8
import importlib #导入importlib模块,importlib模块用于动态导入

mod = importlib.import_module('call')
print mod

执行

[root@ceph01 python]# python test2.py 
1,2,3,4
<type 'unicode'>
[[1, 2, 3, 4]]相加元素和为10
<module 'call' from '/python/call.pyc'>

导入call并赋值给mod打印mod数据类型

cat test2.py 
#!/usr/bin/env python
#coding:utf8
import importlib #导入importlib模块,importlib模块用于动态导入

mod = importlib.import_module('call')

print mod
print type(mod)

执行

python test2.py 
1,2,3,4
<type 'unicode'>
[[1, 2, 3, 4]]相加元素和为10
<module 'call' from '/python/call.pyc'>
<type 'module'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值