面向对象编程:
oop [object oriented programming]一种python的编程思路
面向过程:
就是我们一开始学习的,按照解决问题的步骤去写代码(根据业务逻辑去写代码)
在思考问题的时候, 首先分析“怎么按照步骤去实现”然后将问题解决拆解成若干个步骤,并将这些步骤对应成方法一步一步的,最终完成功能
面向对象:
关注的是设计思维
从计算机的角度来看:面向过程不适合做大项目
而面向对象合适做更大项目的设计
类和对象
类:类是具有一组 相同或者相似特征【属性】和行为【方法】的一系列[多个]对象组合
现实世界 计算机世界
行为---------->方法
特征---------->属性
对象: 对象是实实在在的一个东西,类的实例化,具象化
类是对象的抽象化 而对象是类的一个实例
实例方法:在类的内部,使用def 关键字来定义 第一个参数默认是 self(名字标识可以是其他的名字,但是这个位置必须被占用)
实例方法是归于 类的实例所有
属性:类属性 实例属性
在类的内部定义的变量(类属性)
在方法内部定义的(通过类似于self.变量名)变量,是实例属性
init
- python自带的内置函数,具有特殊的函数,使用双下划线包起来的(魔术方法)
- 是一个初始化的方法,用来定义实例属性,和初始化数据的,在创建对象的时候自动调用,不用手动去调用
- 利用传参的机制可以让我们定义功能更加强大并且方便的类
class People(): def eater(self): print("xiaoqian is a hero") pass pass class Person(): def __init__(self, age, name, sex): ''' 实例属性的声明 :param age: :param name: :param sex: ''' self.name = name self.age = age self.sex = sex pass def eat(self, food): print(self.name+'喜欢吃'+food) pass pass xq = People() xq.name = "xiaoqian" # 添加实例属性 print(xq.name) xq.eater() xm = Person(19, '小美', 'female') print("{}的年龄是{}".format(xm.name, xm.age)) xm.eat('banana') # 小美的年龄是19 # 小美喜欢吃banana