python面向对象第一点继承
‘’’
特征:封装 继承 多态
面向对象:注重的设计 从设计的角度, 从生活的角度设计代码
追求的是代码的维护性和扩展性
面向过程:注意的结果 以结果出发考虑问题
中间的实现步骤不关心 不管用什么方法得到结果即可
比函数稍微大点的叫类
类这个容器中可以放很多函数和变量
把同一类事物的代码放到类中去
类的单词 class
写一个类
类:是一个人图纸 是一个模板 看不见的 比较抽象画
对象:根据类写出具体物品
一个类以创建无数个对象
对象与对象的属性不一定相同
‘’’
‘’’
类是描述一类事物的
事物是由属性和行为构成
属性:这类事物的信息(姓名 年龄 颜色 身高)
行为:会做什么事情
类是由属性和行为构成的
在代码中属性—变量
行为—函数
类是由变量和函数构成的
当类当中没有变量的时候 通过对象名 变量是可以自动创建出变量但是这只能自己使用
构造函数
1创建变量
2初始化赋值
‘’’
# class person:
#写构造函数(init)
# self.变量名—创建变量
# self—自己(谁调用self就代表谁)
# def__init__(self)
# pass
‘’’ 析构函数 在结束的时候自动执行 del 自动销毁 执行时间 1如果是全局,程序结束自动删除 2如果是局部,比如在函数中,函数执行完毕就自动执行删除 3手动删除 del 删除之后不能再次使用 垃圾回收(自动) ‘’’
class person:
def init(self):
print(“我出生了”)
def del(self):
print(“我走了”)
p=person()
‘’’ str() 内置函数,自动执行 打印的对象名输出的是地址值 打印对象名,默认输出__str__
重写:重新写一遍,覆盖以前的函数 repr():和__str__()一样 ‘’’
class Person:
def init(self):
self.name=None
def str(self):
return “10”
p1=Person()
p1.name=“张三”
print(p1)
print(p1.str())
‘’’ 访问限制 私有:只能自己使用,别人不能使用 好处:外部不能随意更改,安全性能高 数据过滤 ‘’’ ‘’’ 继承:子承父业 好处:减少代码量 父类写了子类就不用再写了 子类后面加(父类) 继承父亲的所有的功能 在继承中运行出现儿子——父亲——爷爷这种关系如果出现这种情况一般叫做多重继承 什么情况使用继承 当多个类出现相同代码的时候可以抽出一个父类 满足is a谁是谁的关系 一个类默认是继承object(对象)obje是祖宗
‘’’ ‘’’ python 支持多继承 一个子类可以同时继承多个父类 父类与父类之间逗号隔开 就近原则
‘’’ ‘’’ 构造函数不能继承 但是在创建子类的时候会 先执行父类的构造函数 如果子类写了构造将会把父类的构造给覆盖掉 在子类构造函数必须手动调用父类的构造函数 调用父类构造的时候最好放到最前面,让父类限制性 当父类构造函数有参数的话子类必须给父类构造函数中的参数赋值
高内聚低耦合:自己事情自己做,类于类之间尽量不产生联系 ‘’’