面向对象三大特性:封装、继承、多态
属性私有: self.__money = 100 都是加两个下划线__
方法私有: def __make_cook():
父类里的私有不会被子类继承,而且调用的话只能父类在本身里边使用,在父类外边无法调用
修改私有属性:类的外边无法修改 , 通过在类内部引入固定函数
获取: get函数 : def get_私有属性名(self)
(必须用) return self.__私有属性名
修改: set函数 : def set_私有函数名(self,修改成什么)
self.__私有属性名 = 修改的 (用set修改完还是用get获取)
多态:注重对象,弱类型,相似属性方法可以拿来用
实例属性id不同 实例方法id相同
类属性和实例属性 :
类属性: 在类里,和def函数同级别,描述属性 class Person(object):
country = '中国' (类属性)
def 函数
实例属性:对象属性
类方法,实例方法,静态方法
类方法: @classmethod
def 函数名(cls):
静态方法:@staticmethod
def 函数名(): 括号里没参数
__new__方法: 执行在__init__之前,从父类创建 格式: def __new__(cls):
return object.__new__(cls)
单例模式 保证后边使用相同的都是用这一段内存,不开辟新内存占用 把判断第一次创建__new__ 和 第一次赋属性分开考虑
NONE 空值类型: 没开辟内存
捕获异常: try: 可能报错的代码 except: 补救措施
else 没异常,没走expect才走else
finally 异常和不异常都执行
异常的传递: 不抓住异常会按照代码逻辑传递下去
自定义异常: 引起异常raise + 异常名字(AgeError,NameError...) 是Error或Exception类的子类
但是你要先自定义异常 class 异常名字(Expection):
异常处理: 抛出异常