• 【python基础】模块和包


    一、注意点

    1. python模块实质上是一个python文件。
    2. 注意: 自定义的python文件的文件名一定不要和已有的模块冲突。
    3. 导入模块实质上是加载并执行模块的内容。
    
    • 1
    • 2
    • 3

    二、导入模块的方式

    首先在下建立ck.py文件,里面书写函数和内容如下

    digits = [1,2,3,4]
    
    def login():
        print('hello')
    
    • 1
    • 2
    • 3
    • 4

    1、第一种导入方式
    导入全部

    import sys
    sys.path.append('E:\pythonProject\linux学习\d7')       添加当前文件为搜索路径
    print(ck.digits)
    ck.login()
    #结果
    [1, 2, 3, 4]
    hello
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、部分导入

    import sys
    sys.path.append('E:\pythonProject\linux学习\day7')
    from ck import login
    ck.login()
    #结果
    hello
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、取别名

    import sys
    sys.path.append('E:\pythonProject\linux学习\day7')
    from ck import login as 登录模块
    登录模块()
    #结果
    hello
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    三、模块的其他信息

    1、查询搜索路径信息
    import sys
    print(sys.path) # 模块的查询路径

    2、查看ck模块可以使用的变量和函数…
    import ck
    print(dir(ck)) # 查看hello模块可以使用的变量和函数…

    3、补充信息
    print(ck.doc) # 查看模块的说明文档
    print(ck.file) # 显示模块的绝对路径
    print(ck.name) # __name__当模块被导入时,显示的是模块的名称。

    4、关于_name_模块的具体环节
    在ck模块,自己本身运行(name),显示的是main函数

    
    digits = [1,2,3,4]
    
    def login():
        print('hello')
    
    print(__name__)
    #结果
    __main__
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在主函数里,导入ck模块运行(ck.name),显示的是ck文件名

    import ck
    print(ck.__name__)
    
    • 1
    • 2

    5、__all__导入限制
    在ck模块里面写入__all__里面的信息,才能被外部导入

    digits = [1,2,3,4]
    name = ['westos','ck']
    
    def login():
        print('hello')
    
    print(__name__)
    
    __all__=[digits,login()]               限制了导入的范围只能在这里面
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    导入ck模块,使用模块外的函数则失败

    from ck import *
    login()
    print(digits)
    print(name)
    
    #结果
    NameError: name 'name' is not defined
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    四、包的信息

    新建立一个py包取名为sdk,会生成一个_init_文件。创建import py包实际上就是执行_init_文件里面的内容
    python
    写入ali和华为的py文件
    在这里插入图片描述

    导入方法如下
    方法1:

    from sdk import  ali
    from sdk import  huawei
    ali.create_ecs()
    huawei.create_ecs()
    
    • 1
    • 2
    • 3
    • 4

    方法2: 相对麻烦一些, 需要在包的__init__.py添加导入信息。

    import  sdk
    sdk.ali.create_ecs()
    sdk.huawei.create_ecs()
    
    • 1
    • 2
    • 3

    五、模块的分类

    1、模块的分类:
    内置模块:time,datetime,random, string
    第三方模块: requests, pandas, colorama, faker
    自定义模块: 自己编写的python文件(模块)或者包

    2、时间模块具体信息
    第一种模块time

    import  time
    print(time.time())                      # 计算时间戳
    print(time.ctime())                     # 字符串的时间, Sun Feb  7 17:09:55 2021
    tuple_time = time.localtime()           # 元组类型的时间
    print(tuple_time.tm_year)               # 2022
    
    • 1
    • 2
    • 3
    • 4
    • 5

    第二种模块datetime

    from datetime import date, datetime, timedelta
    print(date.today())                              # 获取今天的日期
    print(datetime.now())                            # 获取当前时间2021-02-07 17:13:17.170345
    print(date.today() + timedelta(days=3))          # 获取3天后的日期
    print(date.today() - timedelta(days=3))          # 获取3天前的日期
    print(datetime.now() + timedelta(minutes=10))    # 获取10分钟之后的时间信息
    print(datetime.now() - timedelta(minutes=10))    # 获取10分钟之前的时间信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、random模块

    import  random
    print(random.random())                                  # 生成0-1之间的小数
    print(random.randint(1, 10))                            # 生成1-10之间的整数
    print(random.choice(['赵妍', '张宏宇', '张仟军']))       # 随机选择一个元素
    print(random.sample(['赵妍', '张宏宇', '张仟军'], 2))    # 随机选择n(n=2)个元素
    print(random.choices(['赵妍', '张宏宇', '张仟军'], weights=[100, 10, 10]))                   # 随机选择一个元素,可以指定权重
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、安装外部模块
    Windows配置全局pip镜像源: https://blog.csdn.net/u011627161/article/details/92766340

    如何安装模块?

    >pip install colorama -i https://pypi.douban.com/simple
    
    • 1

    在这里插入图片描述
    使用外部安装的颜色

    from colorama import Fore
    print(Fore.RED + 'Error: 主机不存在')
    print(Fore.GREEN + 'Success: 主机创建成功')
    
    • 1
    • 2
    • 3

    结果
    在这里插入图片描述
    5、faker模块
    生成测试信息的模块

    from faker import Faker
    fake = Faker('zh-cn')        生成的为中文
    print(fake.name())           生成一个随机的名字
    print(fake.address())        生成一个随机的地址
    print(fake.email())          生成一个随机的邮箱
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    初学python第二天
    iOS技术博主指南:填写苹果应用上架中的隐私政策信息
    掌握这十个Linux命令,秒变Linux老手
    LeetCode验证二叉搜索树
    Haddop的数据计算部分原理
    10881 - Piotr‘s Ants (UVA)
    MongoDB多个collection更新的Transaction 实现
    (SpringBoot)第七章:SpringBoot日志文件
    vue自定义指令来控制按钮权限
    Python去除中文文本中的特殊字符
  • 原文地址:https://blog.csdn.net/weixin_48819467/article/details/125536008