python面向对象 异常&模块

__new__方法
1. 概念
    在类中默认 有个 __new__ 方法(object上的), 该方法用于开辟对象的内存空间.
    注意:
        1. __new__方法先调用开辟内存, 再调用 __init__ 初始化

2. 作用: 单例模式 中要使用
单例模式
概念:单例模式: 指一个类有且只能创建一个对象, 目的为了节约内存空间
     例如: 回收站, 有且只需要一个就能实现所需的功能,没有必要创建多个,浪费内存资源
异常(重点)
1. 概念
    什么是异常: 错误就是异常(出现错误,以异常的形式抛出)
    底层实现(了解): 通过对象的形式实现(  异常对象=异常类名() )

    作用: 工作中不可能应为或大或小的错误 就抛出异常, 因为异常一旦抛出终止代码向下执行.
    因此, 我们需要捕获异常, 捕获异常后异常就不会抛出, 代码就能继续执行.

2. 捕获异常的基本语法
    try:
        可能抛出异常的代码块
    except: # 捕获
        # 如果捕获异常,执行这里的代码块
        # 可以写入日志文件(xxx.log), 输出, 继续抛出

    备注:
        1. 如果 try中的代码块出现异常, 终止try代码块往下执行
        2. 不是所有的错误都能捕获, 语法错误是捕获不了, 执行的时候的错误才能捕获
异常的类型
"""
掌握 异常的类型

1. 概念:
    异常(错误) 是分类型, 异常有很多类(class)
    常见类型: FileNotFoundError,NameError,IndexError
    注意: 异常有很多类型, 我们只捕获 Exception 类型及其子类型的错误

2. 捕获指定类型的错误
    try:
        可能出现异常的代码块
    except 异常类名 as e:  # 通过 异常类名() 创建对象 赋值 给临时变量 e
        # 处理异常
    except (异常类名1,异常类名2) as e:  # 通过 异常类名() 创建对象 赋值 给临时变量 e
        # 处理异常

    注意:
        1. 将所有的代码错误都捕获, 只需要将异常类写成 Exception
异常的完整语法
try:
    可能错误的代码块
except 异常类名 as e:
    # 捕获指定类型的错误
except (异常类名1,异常类名2) as e:
    # 捕获多种类型的错误
except Exception as e:
    # 捕获所有代码类型的错误
else:
    # 如果没有错误就执行这里的代码块 了解
finally:
    # 无论如何都执行
手动抛出异常
1. 语法:
    raise 异常类名("自定义错误提示信息")

    方式二:except 中如果想要继续抛出异常,直接使用 raise
模块和包
1. 模块的概念(module)
    a. 团队开发, 不可能将所有的代码写到同一个文件, 分文件存放
    b. 我们自己可能使用到别人写的代码(在一个文件中)
    c. 人类掌握的基本单词太少了, 及其容易造成命名冲突, 分文件存放

    在python中 一个py文件就是一个模块
    备注: 模块和包的命名符合 标识符命名规范(注意不能以数字开头)

2. 包的概念(package 包): 其实就是一个文件夹,存储多个模块. 标准的包 中创建一个 __init__.py 文件

    好处:
        1. 方便管理多个模块
        2. 解决模块重名的问题
模块的操作
1. 模拟
    a. 创建一个py文件, 写 函数,,变量,输出(文件名不能以数字开头)
    b. 在自己的文件中,导入别人的模块(mymodule)
        导入语法:
            import 模块名  # py文件名,没有后缀
            from ... import ...  # 指定导入
            from 模块名 import 函数//变量
    c. 使用导入的内容
        技巧: import 后面接什么,就用什么 (对象.成员)


2. 模块测试代码(执行代码)的书写位置
    补充 魔术变量: __name__ : 其值由python自动赋值
        (1): 当 当前文件 作为主执行文件(python 解释器后接的文件为主执行文件),
         __name__等于__main__
        (2): 当 当前文件为 被导入的文件,__name__的值为模块名

    # 定义代码: 类/函数/变量 的定义

    if __name__ == "__main__":
        # 执行的代码块
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值