• 类的构造方法
• 类的访问权限
• 继承
• 多态
__init__构造方法
• 调用时间:在对象被实例化时被程序自动调用
• 作用:用于对象创建时初始化
• 书写格式:init前后分别是两个下划线
• 程序不显示定义init方法,则程序默认调用一个无参init方法
• 对象创建过程
类的构造方法
__init__
设置对象属性
def __init__(self.gender, variety,name):
self.gender =gender
self.variety = variety
self.name = name
创建对象过程
wangcai = Dog("male", "golden", "wangcai")
yuanbao = Dog("female", "husky", "yuanbao")
修改对象属性的方法
• 方法1:对象变量名.属性 = 新值 • 方法1的问题:
1)可能修改的属性值不合法
2)在类的外部可以随意修改类的内部属性 • 方法2:对象变量名.内部修改属性方法
私有属性
• 定义:__私有变量名
• 只能在类内部使用,类外部不能访问,否则报错
类的访问权限
私有方法
• 只能在类内部调用,在类的外部无法调用
• 定义私有方法在方法名前添加两个下划线
• 类内部调用私有方法要使用self.私有方法的方式调用
继承
在程序中,继承描述的是类中类型与子类型之间的所属关系,例如猫和狗 都属于动物
单继承
• 子类继承一个父类,在定义子类时,小括号()中写父类的类名
• 父类的非私有属性、方法,会被子类继承
• 子类中方法的查找方式:先查找子类中对应的方法,如果找不到,再
到父类中查找
• 子类可以继承父类的属性和方法,也可以继承父类的父类的非私有属
性和方法,依次类推
• 在子类中调用父类的方法:ClassName.methodname(self)
• 重写父类方法
子类对父类允许访问的方法的实现过程进行重新编写 在子类中定义与父类同名的方法
优点:子类可以根据需要,定义合适的方法实现逻辑
多继承
• object类是所有类的基类,在定义类的时候不需要显示的在括
号中表明继承自object类
• 多继承:一个子类可以继承多个父类
• 多继承定义方式:在类名后的括号中添加需要继承的多个类名
• 多继承中,如果多个类中有同名的方法,子类调用查找方法的
顺序是按照小括号内继承父类从左到右的顺序查找,第一个匹
配方法名的父类方法将会被调用 多态
• 一个抽象类有多个子类,不同的类表现出多种形态