Python模块和包

'''
⽬标
    了解模块
    导⼊模块
    制作模块
    __all__
    包的使⽤⽅法
'''

'''
⼀. 模块
Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块能定义函数,类和变量,模块⾥也能包含可执⾏的代码。

1.1. 导⼊模块
1.1.1 导⼊模块的⽅式
    import 模块名
    from 模块名 import 功能名
    from 模块名 import *
    import 模块名 as 别名
    from 模块名 import 功能名 as 别名
'''
# import math
#
# print(math.sqrt(9))  # 3.0
#
# from math import sqrt
#
# print(sqrt(16))
#
# import time as tt
#
# tt.sleep(2)
# print('hello')
#
# from time import sleep as sl
#
# sl(2)
# print('hello')

'''
1.2. 制作模块
在Python中,每个Python⽂件都可以作为⼀个模块,模块的名字就是⽂件的名字。也就是说⾃定义模
块名必须要符合标识符命名规则。
'''

# 1.2.1 定义模块
# 新建⼀个Python⽂件,命名为 my_module1.py ,并定义 testA 函数。

import my_module

my_module.testA(1, 1)

'''
1.2.4 注意事项
    如果使⽤ from .. import .. 或 from .. import * 导⼊多个模块的时候,且模块内有同名功能。当调
    ⽤这个同名功能的时候,调⽤到的是后⾯导⼊的模块的功能。
'''

'''
1.3. 模块定位顺序
当导⼊⼀个模块,Python解析器对模块位置的搜索顺序是:
    1. 当前⽬录
    2. 如果不在当前⽬录,Python则搜索在shell变量PYTHONPATH下的每个⽬录。
    3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径⼀般为/usr/local/lib/python/
    
模块搜索路径存储在system模块的sys.path变量中。变量⾥包含当前⽬录,PYTHONPATH和由安装过
程决定的默认⽬录。

注意:
    ⾃⼰的⽂件名不要和已有模块名重复,否则导致模块功能⽆法使⽤
    使⽤from 模块名 import 功能 的时候,如果功能名字重复,调⽤到的是最后定义或导⼊的功能。
'''

# 1.4. __all__
# 如果⼀个模块⽂件中有 __all__ 变量,当使⽤ from xxx import * 导⼊时,只能导⼊这个列表中的元素。
'''
模块内容如下: 则导入模块时只能使用testA()

    __all__ = ['testA']
    
    def testA():
        print('testA')
    def testB():
        print('testB')
'''

'''
⼆. 包
包将有联系的模块组织在⼀起,即放到同⼀个⽂件夹下,并且在这个⽂件夹创建⼀个名字
为 __init__.py ⽂件,那么这个⽂件夹就称之为包。

2.1 制作包
[New] — [Python Package] — 输⼊包名 — [OK] — 新建功能模块(有联系的模块)。
注意:新建包后,包内部会⾃动创建 __init__.py ⽂件,这个⽂件控制着包的导⼊⾏为。

'''
# 2.2 导⼊包
import mypackage.my_module1

mypackage.my_module1.info_print1()

'''
如果使用 from mypackage import *,则必须:
     在 __init__.py ⽂件中添加 __all__ = [ ,,,] ,控制允许导⼊的模块列表。
'''
from mypackage import *

my_module2.info_print2()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

万里守约

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

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

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

打赏作者

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

抵扣说明:

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

余额充值