• Python9-模块2-包的进阶-day21


    包是一种通过使用‘.模块名’来组织python模块名称空间的方式。

    1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法

    2. 包是目录级的(文件夹级),文件夹是用来组成py文件(包的本质就是一个包含__init__.py文件的目录)

    3. import导入文件时,产生名称空间中的名字来源于文件,import 包,产生的名称空间的名字同样来源于文件,即包下的__init__.py,导入包本质就是在导入该文件

    强调:

      1. 在python3中,即使包下没有__init__.py文件,import 包仍然不会报错,而在python2中,包下一定要有该文件,否则import 包报错

      2. 创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包即模块

     

    注意事项

    1.关于包相关的导入语句也分为import和from ... import ...两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。可以带有一连串的点,如item.subitem.subsubitem,但都必须遵循这个原则。

    2.对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。

    3.对比import item 和from item import name的应用场景:
    如果我们想直接使用name那必须使用后者。

    相对路径和绝对路径

    使用绝对路径,不管在包内部还是外包 导入了就能使用
    使用相对路径,可以随意移动包,只要能找到包的位置,就可以使用包里的模块
    包里的模块如果也是用了相对路径就不能执行了
    包里的模块如果想使用其他模块的内容只能使用相对路径,使用了相对路径就不能在包内直接执行了

    import sys
    import  os
    sys.path.append(os.path.dirname(os.getcwd()))   #添加path路径
    from core import core
    # print(sys.path)
    # print(os.path.dirname(os.getcwd()))
    if __name__ == '__main__':
       core.main()

     

     异常处理

    什么是异常?
    异常之后的代码就不执行了
    什么是异常处理?
    python解释器检测到错误,触发异常(也允许程序员自己触发异常)
    程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)
    如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理
    使用try和except就能处理异常
    try是我们需要处理的代码
    except后面跟一个错误类型,当代码发送错误且错误类型符合的时候,就会执行except里面的代码
    except支持多分枝
    万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常
    有了万能的处理机制仍然需要把能预测到的问题单独处理
    单独异常处理的所有内容都应该写在万能异常之前
    else:没有异常的时候执行else中的代码
    finally:不管代码是否异常,都会执行
    finally和return相遇的时候,依然会执行
    函数里做异常处理用,不管是否异常去做一些收尾工作
    如何进行异常处理?
    try:
    被检测的代码块
    except 异常类型:
    try中一旦检测到异常,就执行这个位置的逻辑
    '''
    try:
        ret = int(input('number >>> '))
        print(ret*'*')
    except  ValueError:
        print('输入的不对')
    try:
        print('1111')
        # 1/0
        # print('qqqq')
        # name
        # [][2]
        ret = int(input('number >>> '))
        print(ret*'*')
    # except ValueError:
    #     print('value-error')
    except  Exception as error:
        print('输入的不对',error)
    else:
        print('没有异常的时候执行else中的代码')
    finally:
        print('不管代码是否异常,都会执行')
  • 相关阅读:
    基本数据类型相互转换及操作方法
    python以及计算机原理基础简要摘录
    Linux程序包管理
    rpm命令详解
    Linux程序包管理
    Linux任务计划
    压缩,解压缩工具及bash脚本编程
    btrfs文件系统管理与应用
    LVM应用
    CSS核心技术
  • 原文地址:https://www.cnblogs.com/zhangtengccie/p/10349379.html
Copyright © 2020-2023  润新知