模块与包的使用

1、定义和导入模块

p1中简单定义变量、类和函数

a = 1
b = 2


def Add(x, y):
    return x+y


class Kid:
    def __init__(self, age):
        self.age = age

    def laugh(self):
        print('我%d岁了。'%self.age)

导入用 import

变量的导入和使用
将目录为ch7下文件名为p1中的a导入另一个文件中

import ch7.p1
print(ch7.p1.a)

函数的导入和使用
调用p1里面的函数

print(ch7.p1.Add(1,2))

类的导入和使用

kid = ch7.p1.Kid(18)
kid.laugh()

别名

每次都写一长串太麻烦,为了简便可以给包起别名

import ch7.p1 as m
print(m.a)

还可以使用from 模块名 import 元素
(就是从哪个包里导入什么元素)

from ch7.p1 import a
print(a)

可以导入多个,用逗号的方式直接加在import后面

from ch7.p1 import a, b,Add
print(a)
print(b)

print(Add(1,2))

全部导入用*

from ch7.p1 import *
print(a)
print(b)

print(Add(1,2))

kid = Kid(18)
kid.laugh()

导入时控制权限

主动的方式让访问者知道哪些可以被导入,哪些不能被导入

(左右双下划线all,列表,里面是可以被导入的)

__all__ = ['a', 'Add']
__all__ = ['a', 'b', 'Add', 'Kid']

2、包

用包来组织多个模块
(包就相当于一个文件夹)

新建包,右键目录ch7,new一个Pyhton Pachage,名字为t1,建立好之后里面自带了一个__int__.py空文件
(此文件在导入时已经被执行)

文件中输入一行打印代码

print('i am package line')

从其他.py文件中调用

import ch7.t1

命名空间

t1 和 t2 包里都有p1模块,p1模块下都有变量a ,怎么区分呢,通过引入取别名,让前面的引入是不一样的

import ch7.t1.p1 as m1
import ch7.t2.p1 as m2

print(m1.a)
print(m2.a)

命名空间解决了变量重名或模块重名的问题

若在init包里直接导入公共模块,其他多个文件可以直接调用这个包里的模块

3、检索目录

包,python也会在目录里挨着找需要的包或者模块,如果有,就会被成功导入,如果没有就会报错

导入嵌套 比如3导入4,4导入5,5导入3

4、python的模块

4.1 python的标准模块

pyhton内部的、被写好的,可以直接被使用

sys,time,os,calendar,urlllib,json,re,math,decimal,shutil,
logging,tkinter

4.2 python 的第三方模块

比如说连接MySQL数据库
pymysql 数据库
cx_Oracle 连接Oracle数据库的
pygame 开发小游戏
PIL 处理图形,图片
xlrd 处理excel读取和写入
xlwt 处理excel读取和写入
selinium 自动化测试相关的包
numpy 图形曲线相关的计算

几个方法

查看全部模块: help(‘modules’) (IDLE打开)

安装/卸载:pip install / uninstall xxx (在pycharm终端里)

查看已经安装的三方模块:pip list (cmd运行环境下查看,在pycharm终端里也可)

以主程序的方式去运行这个代码

若在p1中加入一行测试代码,比说说print(),在p2导入p1时,这个代码也会被执行,为了不让别人调用时执行这段代码,可以在代码前加入一行

if __name__ == '__main__':
    print(Add(4, 5))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值