目录
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的时候触发异常;