python如何查看包的用法_包、模块[Python常见问题]-云海天教程

e1903a560fa5fc9e1a2b4f507b9c8581.png

一、包

1、什么是包?

包指的是内部包含__init__.py的文件夹

b6bf9d3a1af008bea1cf02bf8165fc5e.png

2、包的作用

存放模块,也可以更好的管理模块

二、模块

1、什么是模块?

模块是一系列功能的结合体,本质上是一个个的py文件,里面包着一堆函数与代码

2、模块的三种来源

① python内置模块(python解释器自带的):sys,time,os,turtle等等

② 第三方模块(大佬写的):requests,urllib2,beautifulsoup

③ 自定义模块(自己写的):自己定义的demo.py

3、模块的四种表现形式

① 使用python编写的py文件(了解)

② 编译后的共享库DLL或者是C或者C++库(了解)

③ 包下面带有__init__.py的一组py文件

- 使用pycharm创建一个名字为py_demo的Python Package

- __init__.py

- demo.py

- demo2.py

a22a6cec665e672158e028666a00f452.png

④ python解释器下的py文件

4、为什么要使用模块?

① 模块可以帮我们更好的管理功能代码,比如:函数、变量、类...

② 可以将项目拆分成一个个的功能,分别存放在不通的py文件(模块)中

5、如何创建、编写并使用模块?

① 创建模块:创建模块(创建.py文件)

② 编写模块:在py文件中编写python代码

③ 使用模块:通过import关键字导入模块

import 模块名

注意:import 模块时,模块后不能添加.py

在使用模块阶段,必须要注意,哪个是执行文件,哪个是被导入文件(被导入的模块)

模块在首次导入时,就已经固定好了,当前文件查找的顺序是先从内存中查找

模块在导入时会发生的事情:

1.会先执行当前执行文件,并产生执行文件中的名称空间

2.当执行到导入模块的代码时,被导入的模块会生成一个模块的名称空间

3.会将被导入模块的名称空间加载到内存中

b8eeb2e1b3aa9805f271d7263227e8aa.png

6、给模块起别名

import 模块 as 别名

7、模块的导入方式

① import 模块

在执行文件中直接导入

② from 包 import 模块

from 模块 import 函数名/变量名/类名

8、循环导入问题

例:模块间互相调用

demo1.py :

from demo2 import name

name = "bear"

20339e3f5c418b10b0b6fb97072a37c4.png

demo2.py :

from demo1 import name

name = "apple"

99722d4d4e1b1a090320b00fb99dccf9.png

run.py :

from demo1 import name

print(name)

48250057f45faefec146226c95eb30d1.png

运行run.py一定会报错,报错信息如下:

c79c7f9ee8db6f27f76f9683892dfff4.png

如何规避这种错误?

解决方法:

1.需要查找的名字放在导入模块的上方

修改demo1.py

18daaaf589bfbb8336fddf86b8c1a53b.png

无需修改demo2.py

执行run.py    # run.py的代码无需修改

8044669beca29ba5e0623e23affc97ee.png

2.在函数内部导入模块,将模块变成函数名称空间中的名字

修改demo1.py或者demo2.py(以demo1.py为例,将from...import...放进函数中,使用时再调用模块demo1中的函数)

05256e9b231f350b193554947e44a95f.png

无需修改demo2.py

执行run.py    # run.py的代码无需修改

db4470719a8855462cc606ed600307f3.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值