第四天-Python面向对象与异常处理机制

目录

1.Python面对对象

1. class

2.类的参数self:

3.类的构造函数

4.对象的生命周期

5.私有函数和私有变量

6.封装

7.装饰器

8.常用装饰器

1.classmethod

2.staticmethod

3property

9.类的继承

10.类的多态

11.super函数

12. 类的多重继承

13.类的高级函数

1. __str__

2.__getattr__的功能

3.__setattr__

4.__call__

2.异常处理

1.语法:

2.捕获具体异常

​编辑

3.捕获多个异常

4.常用异常类型

5.finally

6.自定义异常与抛出异常

1.raise

2.自定义异常类

3.断言功能--assert


1.Python面对对象

1. class

1. 利用面向对象(属性和方法)去进行编码的过程;

2.自定义对象数据类型就是面向对象中的类(class)的概念

3.类的关键字class :类的首字母大写,多单纯情况下每个单词首字母大写;

2.类的参数self:

        1是类函数中必传的参数,且必须在第一个参数位置,否则就不是一个类函数;

        2.self是一个对象,他代表实例化的变量本身

        3.self可以直接通过点来定义一个类变量;

       4.self中的变量与含有self参数的函数可以再类的任何一个函数内随意调用;

       5.非函数中定义的变量在定义的时候不用self

3.类的构造函数

        1.类中的一种默认函数,可以用来将类实例化的同时,将参数传入类中;

        2.构造函数的创建: def __init__(self,a,b)2个下划线

class Person(object):
    name = None
    age = None

    def __init__(self,name,age):
        self.name=name
        self.age=age

p=Person("张三",18)
print(p.name)
print(p.age)

张三
18

4.对象的生命周期

1. 当python发现对象没有被关联时就会默认删除

2.当程序运行完成后进行删除

3.__del__是对象的内置函数,无需手动调用

5.私有函数和私有变量

1.无法被实例化后的对象调用的类中的函数与变量

2.类内部可以调用私有函数和变量

3.只希望内部使用,不希望被使用者调用;

4.定义:在变量或函数钱添加__(2个下划线),变量或函数名后无需添加

6.封装

1. 将不对外的私有属性或方法通过对外使用的函数而使用(类中定义私有的,只有类内部使用,外部无法使用)

2.保护隐私,明确区分内外;

7.装饰器

1.装饰器也是一种函数

2.可以接受函数作为参数

3.可以返回函数

4.接受一个函数,内部对其处理,然后返回一个新的函数,动态的增强函数功能;

5.将c函数在a函数中执行,在a函数中可以选择执行或不执行c函数,也可以对c函数的结果进行二次加工处理;

6.定义

def show(func_args): 外围函数

        def inter(*args,**kwargs):  内嵌函数

                return func_args(*args,**kwargs)

        return inter

def a(func):
    def inner(*args, **kwargs):
        print("args", args, kwargs)
        result = func(*args, **kwargs)
        if result == "ok":
            print("ok")
        else:
            print("no")
    return inner

@a
def b(msg):
    return msg

b("no")

8.常用装饰器

1.classmethod

1. 将类函数可以不经过实例化而直接被调用;类似于java静态方法

2.类内部函数可以调用classmethod,classmethod不可调用内部函数

2.staticmethod

1. 将类函数可以不经过实例化而直接被调用,被该装饰器调用的函数不许传递self或cls参数,且无法在该函数内调用其他类函数或类变量;类似于java静态方法

2.与classmethod函数区别不需要添加cls

3property

1.将类函数的执行免去括弧,类似于调用属性(变量)

2.自己理解:通长用于对象封装:类似java get set方法;

class Person(object):
    __name = None
    __age = None

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self,value):
        self.__name=value

p=Person()
p.name="张三"
print(p.name)

9.类的继承

1. 通过继承基类来得到基类的功能

2.所以我们被继承的类作为父类或者基类,继承者被称为子类;

3.子类拥有父类的所有属性和方法;

4.父类不具备子类自有的属性和方法;

10.类的多态

1. 继承父类,并重写父类的方法

2.只用重写类的方法名称即可

11.super函数

1. 继承父类的方法而使用关键字,当子类继承父类后,就可以用父类的方法;

super()中的参数可以省略

12. 类的多重继承

1.子类可以同时继承多个父类

13.类的高级函数

1. __str__

如果定义了该函数,当print当前实例化对象的时候,会返回改函数的return信息;

2.__getattr__的功能

1. 当调用的属性或方法不存在时,会返回该方法定义的信息;

2.提示变的友好

3.__setattr__

1. 拦截类中不存在的属性和值

4.__call__

1.讲义一个类变成一个函数

2.异常处理

1.语法:

2.捕获具体异常

3.捕获多个异常

4.常用异常类型

5.finally

6.自定义异常与抛出异常

1.raise

1. 将信息以报错的方法抛出

2.如果不知道抛出那种异常可以使用 raise Exception(message)

2.自定义异常类

1. 继承类:Exception

3.断言功能--assert

1. 用于判断一个表达式,在表达式为false的时候触发异常;

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值