持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
大家好,我是木大木大,因为疫情和环境原因啊,在家开始了自学python的路子,从此深坑加一人。后面我会每天持续更新一些学习python的过程,当然一开始就是一些基础啦,希望大家多多支持,莫嫌弃啦~
1.1 面向过程
面向过程编程:是一种以过程为核心的编程,主要是在解决一个问题的时候,将问题拆解成一个个小的步骤完成最后进行拼接起来的就是面向过程
例如:建房子
1、打地基
2、搬砖
3、砌墙
4、刮腻子
5、排水电
6、装修
写简历
1、创建一个空白的word文档
2、设计简历样式(设计排版模式 , 图形渲染)
3、写入个人信息以及经验描述
一步一步的从一个空白的文档变成一份精美的简历,这个流程就是面向过程
在面向过程中,每一个步骤都是亲历亲为的,这就是面向过程的解决问题的方式
1.2 面向对象
面向对象编程:(OOP)是一种以对象为核心的编程方式,面向对象在解决问题的时候是在思考如何设计这个事情。让自己成为一个上帝
例如:建房子
1、施工队
2、装修队
写简历
1、下载模板
2、填写信息
(找代写)
面向对象就相当于一个包工头/领导,将一个事情分给不同的团队进行完成,最后组成一个整体。
面向过程就相当于其中的施工者/员工,在里面具体的去完成每一个步骤
在编程中 , 不同的编程范式是不分好坏也互不对立。中国之大也分多种菜系,不同的菜系也有不同的做大 , 他们之间没有高低之分。编程也是一样的,不同编程场景使用不同的方式各有优劣。
何为对象:对象是一个拥有属性以及行为的实体;
属性:描述这个对象的特征;
行为:描述这个对象所能完成的事情(动作)。
一个帅气的阿宸
属性/特征:
1、性别:男
2、腹肌:八块
3、外貌:帅
4、身高:180cm
5、体重:78kg
6、肤色:小麦色
7、发量:80万根
8、年龄:24
……
行为:
1、讲课
2、打篮球
3、吃饭
4、睡觉
5、会做饭
6、打游戏
7、敲代码
……
如果我要让这个对象更加具体:属性越多越好
三、类和对象
在代码里面实现一个对象是通过类来实现。(python是完全面向对象的语言)
何为类:类就相当于生活中的类别,一个比较抽象的概念
对象是通过类产生的一个拥有属性、行为的实体,是对应类中的一个个体<先有类,再有对象>
为什么你会把猫头鹰放到鸟类中而不是猫类?
1、会飞
2、有羽毛
3、会下蛋
4、有两爪子
从猫头鹰身上抽象出来的行为以及属性/特征,组合在一起就是一个类
人为什么是人
1、使用工具
2、思考
……
1、类的定义
python中如何去定义一个函数
def 函数名(形参):
函数体
函数名(实参)
python中定义一个类的语法
class 类名:
类代码(属性,行为)
类名的定义:使用大驼峰命名方式(所有单词首字母大写)
定义类之后没有实例对象 , 执行代码 , 类中的代码也是执行
定义再类中变量称之为属性,函数称之为方法
class People:
# 类属性 (类属性是所有对象共有的属性)
name = '阿宸'
age = 24
# 通过类实例对象 , 类的实例赋值之后,该变量名称就是一个对象
# 类实例化一次就会产生一个对象
ac = People()
hzx = People()
print(ac) # <__main__.People object at 0x000002144B8AF6C8>
# 对象访问类中的属性
# 对象名称.属性名
print(ac.name)
# 修改属性,对象自身的属性
hzx.name = '黄泽鑫'
print(hzx.name)
# 修改类属性
People.name = '黄泽鑫'
print(ac.name)
# 查看属性
print(People.__dict__)
2、__init__初始化方法
__init__称为初始化方法 , 实例化方法 , 魔法方法,构造方法
该方法再初始化对象的时候被调用,通常情况下用于设计对象的属性
该方法再实例化对象的时候自动调用执行, 不需要手动调用
3、self
类中的每个方法再创建的时候基本都自动的定义了self参数
self:用来表示对象本身的
class People:
# 类属性 (类属性是所有对象共有的属性)
age = 24
# 初始化方法 (对对象的属性进行初始化)
def __init__(self,name):
# 对象属性(实例属性)
self.name = name
def run(self):
print(f'{self.name}在跑步')
ac = People('阿宸')
h = People('黄泽鑫')
# 对象再寻找属性的时候,会优先再init中寻找
# print(ac.name)
# print(ac.age)
# print(h.name)
# ac.run()
# h.run()
# ac.run()
# 查看对象自身的属性
print(ac.__dict__)
print(h.__dict__)