模块与包

29 篇文章 0 订阅

模块

一.模块其实就是python脚本,增强代码的可维护性和可重用性;
  • 系统内置模块:time, random
  • 自定义模块:
  • 第三方模块:
二.导入模块的三种方法:
  • import 模块名: 尽量优先使用, 避免与现有的函数名或者变量名冲突;
    模块名.函数名()
    模块名.变量名
  • from 模块名 import 函数/变量名: 有节制的使用;容易与现有的函数名或者变量名冲突;
  • from 模块名 import *: 尽量避免使用, 会污染命名空间;

实验:module目录下定义cacl模块

这里写图片描述
结果如下图
这里写图片描述

对于cacl模块可以进行测试

这里写图片描述

这时对于导入该模块的module_test来说会连测试的结果5也引用

这里写图片描述

为了避免这种情况,cacl在进行自检时,加入if name == ‘main‘:(main回车可自动补全)

这里写图片描述
这里写图片描述
这种导入方法也是可以的

 from cacl import add,mulit,a  ##或者 *
 print add(1,3)
 print mulit(2,5)
 print a
结果
4
10
hello python

包,其实就是一个目录,当一个新包建立时,会自动生成一个脚本:__init__.py

新建包Package,在这个包下又建立package01包和02包,每个包下新建module01和module02
这里写图片描述

编辑module01模块

这里写图片描述

在module02中导入包01下的module01

这里写图片描述

包02下的module02测试

这里写图片描述

注意: from Package01 import * 实质上是执行Package01包里面的init.py脚本的;当然这个里边没有的话取其他模块找,要

python包/模块路径问题

import sys
import pprint
pprint.pprint(sys.path)

结果:列表形式
['/Python/root/Package/package02',
 '/Python/root',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages']

添加新的路径

sys.path.append('/root/Desktop/201803python周内/day06/Package')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值