一、什么是面向对象?
对象:有具体特征和行为操作的事物
代码:有具体(特征)属性和(行为)方法的对象(将对象行为特征抽象化用代码表示)
二、类和对象的区别?
1、代码->还原生活场景
简单的代码操作-> 基础语法,堆叠功能[变量、数据类型、运算、if、while]
函数式编程-> 将所有要处理的事情,开始封装成具备一定处理功能的函数,调用执行
2、【面向过程编程】
开发人员将完成事情的操作步骤封装在函数中,通过函数调用执行这样的开发操作,代码中封装了大量的
包含处理步骤的函数。
(适合中小型项目开发;大型项目开发[代码的逻辑处理方式不够成熟,导致代码高耦合!)
【面向对象编程】
对面向过程编程的补充和完善,通过对象和对象之间的交互协作完成项目功能的开发还原生活场景。
(适合大型项目开发)
三、 类的声明定义语法操作?
类型(类):代码中可以通过class关键字,自定义一个数据类型
(1)数据类型:简称类型:简称类-> 自定义数据类型-> 自定义 类
(2)基本语法:
通过class 关键字进行定义
----------------------------------
class 数据类型名称:
类型中的代码
example:
# 创建一个Person类型
class Person:
pass
----------------------------------
3. 对象的创建和使用
(3)类型名称命名规范:见名知意、驼峰命名法[一个或者多个英文单词组成、每个单词首字母大写]
(4)类型:通过项目中需要的大量有相似特征和行为的对象,抽象出来的一个数据类型
四、 声明定义类型
类型:通过对象抽象出来的一个数据类型。 类型中需要定义对象需要的特征[属性|变量]和行为[方法]
通过class 关键字进行定义
语法: class 数据类型名称:
pass
# 创建一个Person类型
五、初始化类型属性
class Person:
# 定义属性、特征
# 固定写法:在__init__方法中,定义类型的属性
注意1:class 关键字,用来声明定义一个类型,固定写法
注意2:类型中的所有函数,第一个参数self表示当前对象,类似生活中的一个名词:我
注意3:类型中的函数,必须称为方法;
函数 VS 方法 : 方法是一种特殊的函数,只能在类型中使用!
注意4:类型中方法,第一个参数:指代的是当前对象~~~一般被声明为self
表示当前对象,调用的时候不需要传递数据给self!
六、 定义类型的方法
通过class 关键字直接声明定义一个自定义类型
语法:
class 数据类型名称:
pass
七、对象的创建、属性的调用、方法的调用
1、语法:对象的特征,是需要在类型中定义的!在通过类型创建对象时,才会给具体的特征赋值给对象的特征赋值,
固定语法:在__init__()函数中操作class Author:
# 给对象的特征赋值,在__init__()中进行操作
def __init__(self, username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
python中通过类型创建对象[a = Author()]会自动调用__init__()方法
创建对象a = Author()-> Author.__new__()方法创建对象
-> Author.__init__()方法初始化数据
-> 得到一个Author对象
在Python中,有一种特殊的函数:魔法函数
每个魔法函数有一些特定的功能,方法名称都是固定的
魔法函数的命名规则:函数的前后各有两个下划线!
2、将一个函数,定义在类型的内部,第一个参数~设置为可以接受对象的参数:selfclass Author:
# 定义一个行为:个人介绍
def introduction(self):
print("个人介绍.........")
注意:
方法和函数的最大的区别:
【1】方法:
第一个参数可以隐式接受当前对象作为实际参数 。
方法是定义在类型的内部的 。
方法的调用必须通过对象的引用变量调用。
【2】函数:
函数中的任何形式参数,在调用的时候都需要明确的传递数据 。
函数是定在类型的外部的。
函数的调用直接通过函数名称调用。
3、调用执行方法:类似与调用执行函数
# 方法的调用执行:必须通过对象的引用变量进行调用!
author = Author()
author.introduction()