• 导入模块_导入包_标准库模块


    导入模块

    # 方式1
    # 语法:import 模块
    # 本质:使用变量module01存储该模块地址
    # 优点:不用担心成员冲突问题
    # 使用:需要通过变量访问
    import module01
    module01.fun01()
    
    import module01 as m
    m.fun01()
    
    # 方式2
    # 本质:将模块指定成员导入到当前模块作用域中
    # from 模块 import 成员
    # 使用:直接使用导入的成员
    # 缺点:可能造成成员冲突
    from module01 import fun01
    from module01 import MyClass01
    
    def fun01():
        print("demo01--fun01")
    
    fun01()
    
    c01 = MyClass01()
    c01.fun02()
    
    # 方式3
    # from 模块 import *
    # 优点:可以一次导入多个成员,避免一个一个导入.
    # 缺点: 代码可读性不高,命名冲突几率更大.
    from module01 import *
    # from module02 import *
    # from module03 import *
    fun01()
    
    c01 = MyClass01()
    c01.fun02()

     模块变量

    __all__

    """
        module5
    """
    
    __all__ = ["fun01"]
    # 定义可以被其他模块导入的成员
    
    def fun01():
        print("fun01")
    
    # 隐藏成员:使用单下划线命名,
    #          在其他模块中不使用(因为现在的__all__限定于fun01)
    #         仅限于from ? import *
    def _fun02():
        print("fun02")
    
    def fun03():
        print("fun03")
    from module05 import *
    
    fun01()
    # 1. 隐藏模块成员
    # _fun02()# 不能访问隐藏成员
    # fun03()# 不能访问__all__以外的成员
       
    # from module05 import _fun02
    # _fun02()# 能访问隐藏成员
    
    # from module05 import fun03
    # fun03() # 能访问__all__以外的成员

    __doc__  __file__  __name__

    # 2. 查看当前模块的文档注释
    print(__doc__)
    
    # 3. 查看当前模块的文件路径
    # /home/tarena/1906/month01/code/day14/demo03.py
    print(__file__)
    
    # 4.查看当前模块名称 --- 判断当前模块是否为主模块
    if __name__ == "__main__":
        print("是主模块(程序从当前模块开始执行)")

    模块分类

    1. 内置模块(builtins),在解析器的内部可以直接使用。

    2. 标准库模块,安装Python时已安装且可直接使用。

    3. 第三方模块(通常为开源),需要自己安装。

    4. 用户自己编写的模块(可以作为其他人的第三方模块)

    搜索顺序

    搜索内建模块(builtins)

    sys.path 提供的路径,通常第一个是程序运行时的路径。

     

    导入包

    import 包名 [as 包别名] 需要设置__all__

    import 包名.模块名 [as 模块新名]

    import 包名.子包名.模块名 [as 模块新名]

     

    from 包名 import 模块名 [as 模块新名]

    from 包名.子包名 import 模块名 [as 模块新名]

    from 包名.子包名.模块名 import 成员名 [as 属性新名]


    # 导入包内的所有子包和模块

    from 包名 import *

    from 包名.模块名 import *

    搜索顺序

    sys.path 提供的路径

    __init__.py 文件

    是包内必须存在的文件

    会在包加载时被自动调用

    __all__

    写在__init__.py文件中

    标准库模块

    import time
    
    # 1. 获取当前时间戳(从1970年1月1日到现在经过的秒数)
    # 1563326340.661173
    print(time.time())
    # 2. 获取当前时间元组(年,月,日,小时,分钟,秒,一周的第几天,一年的第几天,夏令时)
    time_tuple = time.localtime()
    print(time_tuple)
    # 3. 时间戳 -->时间元组
    print(time.localtime(15633263))
    # 4. 时间元组 -- 时间戳
    print(time.mktime(time_tuple))
    # 5. 时间元组 -->  字符串
    print(time.strftime("%y/%m/%d %H:%M:%S",time_tuple))
    print(time.strftime("%Y/%m/%d %H:%M:%S",time_tuple))
    # 6. 字符串 --> 时间元组
    # "19/07/17 09:36:48"
    print(time.strptime("19/07/17 09:36:48","%y/%m/%d %H:%M:%S"))
  • 相关阅读:
    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功
    flutter环境搭建
    并发
    java集合继承关系图
    java中反射的使用
    android使用http3
    java之结合代码理解synchronized关键字
    阿里云ECS服务器将默认的Ubuntu系统改成桌面版
    python之demo2----改编自python官方提供的turtle_yinyang.py画阴阳的demo
    python之demo1----改编自turtle.py文件中的demo
  • 原文地址:https://www.cnblogs.com/NeverYa/p/11223857.html
Copyright © 2020-2023  润新知