day-17面向对象编程
1 面向过程编程
2 函数式编程
3 面向对象编程
什么是类 什么是对象
类是拥有想用功能和相同属性的对象的集合(是一个抽象的概念),对像是类的实例(是具体的)
语法:
class 类名:
类的说明
类体
说明:
class 关键字:固定写法
类名: 规范:见名知意,采用驼峰式命名,
第一个字母要大写,不能使用系统的函数名类名或者模块名
要求是标识符不是关键字
类的内容 由方法和属性组成
方法:对象方法 类方法 静态方法
属性:类属性 对象属性
1 对象方法
1)怎么定义:直接定义在类中的函数就是对象方法
2)怎么调用 对象.方法名()
3)特点:用对象调用对象方法时候,参数self不需要传参,系统会自动将当前那对象传给self
谁去调用的这个方法当前对像激素谁
2 类方法
1)怎么定义:定义函数前加装饰器
@classmethod
def 函数名:
函数体
2)怎么调用 类.方法名()
3)特点:参数cls 不需要传参,系统会自动将当前类传给cls
3 静态方法
1)怎么定义:定义函数前加装饰器
@staticmethod
def 函数名:
函数体
2)怎么调用 类.方法名()
3)特点:
1 类中函数的参数
#2 构造函数—名字和类名一样,专门用来创建对象的函数就是构造函数
#python中创建类的时候,系统会自动为我们创建这个类的构造函数
2 魔术方法的特点
1)魔术方法不需要程序员自己调用,在特定的事件发生后系统自动调用
2 init()方法
当通过类创建对象的时候,类中的__init__()方法会自动调用
通过类创建对象时需不需要参数,需要几个参数,由这个类中的 init()决定
#类属性
1)怎么定义 直接 属性名=值 的形式定义在类中
2)怎么使用 类.属性名
3)什么时候用 属性不会因为对象不同而不一样就将这个属性定义为类属性
‘’’
#对象属性
1)怎么定义 以 self。属性名=值 的形式定义在 init()方法中
2)怎么使用 对象.对象属性名
3)什么时候用 属性会因为对象不同而不一样就将这个属性定义为对象属性
可以通过在 init() 中添加参数来实现创建对象的时候直接给属性赋值
-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Human: def __init__(self,name,age,dog): self.name=name self.age=age self.dog=dog def walk_dog(self): print(f'{ self.age}的{ self.name}正在遛一只叫{ self.dog}的狗') class Dog: def __init__(self,name,gender,brand):</