导包--(python18)

1. 模块的导入

1.1 模块的导入方式

模块的介绍:在Python中,一个.py文件就是一个模块
导入模块的方式:
方式一:

import 模块名

方式二:

from 模块名 import 成员名
导入所有的成员
from 模块名 import *

起别名:

import 模块名 as 别名
from 模块名 import 成员名 as 别名

区别:
1.import是拿到了模块对象的地址,通过地址来使用模块中的成员名,对于import方式来说,没有任何的限制
2.from-import,有些成员不能被导入的,比如私有的,但是可以使用__all__=[]来进行设置

使用方式

模块名.成员名
from-import的方式直接可以使用成员名,但是也有一定的弊端

案例:

# 方式1
import  p_01自定义模块
# 使用的时候需要 模块对象.成员
p_01自定义模块.show()


# 方式1的起别名 as
import p_01自定义模块 as a
print(a.n)
a.show()

# 方式二 导入的时候直接使用成员名即可
from p_01自定义模块 import n
from p_01自定义模块 import show
from p_01自定义模块 import Cat as CatClass
print(n)
show()
CatClass().show()

1.2 魔法方法 all

__all__ = ['x','_y','__z']

x = 1
_y = 2
__z = 3

可以改变在使用 from-import 方式导入模块时,成员的导入规则

from p_04模块 import *
print(x)
# print(_y)  报错
# print(__z)  报错
# 解决办法使用__all__进行
print(_y)
print(__z)

1.3 模块的查找顺序

  1. 当前程序所在目录
  2. 在当前程序所在工程的根目录
  3. PYTHONPATH
  4. 系统目录
  5. site_packages 第三方模块的安装目录

1.4 name

如果__name__ 出现在当前执行的模块中时,得到的值是 main 这个字符串,用来表示执行的是当前文件
如果__name__ 出现在在了被导入模块中时,得到的值是被导入模块的模块名

使用name来进行判断,在导入模块的时候不执行里边其他的测试代码,只是导入里边的成员

import p_01自定义模块
if __name__ == '__main__':
    print('程序的入口')
    print(__name__)

2. 导包

包:就是一个文件夹
在pytohn3以前,包中有一个文件__init__.py
python3以后,包就是一个文件夹

2.1 导包的方式

方式一:导入模块名

import 包名.模块名
from 包名 import 模块名
from 包名.模块名 import 成员名

方式二:导入报名

import 包名
from 包名 import *
 在导入时,不会指定模块名,只指定包名
 这时,默认情况下(__init__.py 为空)哪个模块都不会导入
import cn.a
print(cn.a.n)

from cn import b
print(b.m)

# 导入b模块中的所有成员
from cn.b import *
print(z)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

长安有故里y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值