Python基础 面向过程,面向对象(类和对象1)

简介: python类与对象、面向过程、面向对象、类名,属性,方法的定义,数据类型、类的设计、类的dir()内置函数,如何定义类和定义对象

编程界的两大阵营
面向过程 和 面向对象

区别:
面向过程:
事物比较简单,可以用线性思维去解决
面向对象:
事物比较复杂,使用简单的线性思维无法解决

共同点:
面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是对立的
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;
具体到微观操作,任然使用面向过程方式来处理
面向对象
相比较函数,面向对象是更大的封装根据职责在一个对象中封装多个方法
1.在完成某一个需求前,首先确定职责--要做的事情(方法)
2.根据职责确定不同的对象,在对象内部封装不同的方法(多个)
3.最后完成的代码,就是顺序地让不同的对象调用不同的方法
特点
1.注重对象和职责,不同的对象承担不同的职责
2.更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
3.需要在面向过程基础上,再学习一些面向对象的语法
类与对象
类和对象是面向对象编程的两个核心概念

类:
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用
1.特征被称为属性
2.行为被称为方法
类就相当于制造飞机的图纸,是一个模板,是负责创建对象的

类是多个类似事物组成的群体的统称。能够帮组我们快速理解和判断事物的性质。

对象:
1.对象是由类创建出来的一个具体存在,可以直接使用
2.由哪一个类创建出来的对象,就拥有在哪一个类中定义的 属性和方法
3.对象就相当于与用图纸制造的飞机
4.在程序开发中,应该先有类,再有对象

类和对象的关系
1.类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象
2.类只有一个,而对象可以有很多个

不同的对象之间,属性可能会各不相同

3.类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少

类的设计
在使用面向对象开发前,应该首先分析需求,确定一下,程序中需要包含哪些类

例如:
开发植物大战僵尸的游戏,就需要有植物和僵尸

定义类: 向日葵 豌豆射手 冰冻射手 普通僵尸 铁桶僵尸
定义对象:生命值 生命值 生命值 生命值 生命值

    生产阳光()    发射子弹()      发射冰冻子弹()        咬()          铁通
    摇晃()                                        移动()          咬()
                                                                移动()
                                                                

在程序开发中,要设计一个类,通常需要满足一下三个要素
1.类名 这类事物的名字,满足大驼峰命名法
2.属性 这类事物具有什么样的特征
3.方法 这类事物具有什么样的行为

大驼峰命名法:
CapWords
1.每一个单词的首字母大写
2.单词与单词之间没有下滑线

类名的确定
名词提炼法,分析整个物业流程,出现的名词,通常就是找到的类

属性和方法的确定
1.对对象的特征描述,通常可以定义成属性
2.对象具有的行为(动词),通常可以定义成方法

提示:
需求中没有涉及的属性或者方法在涉及类时,不需要考虑

例:
需求:
小明今年18岁,身高1.75,每天早上跑完步,回去吃东西
小美今年17岁,身高1.65,小美不跑步,小美喜欢吃东西

按照此需求定义类和对象
类: Person
对象: name

  age
  height
  run()
  eat()

数据类型:
不同的数据类型属于不同的类
使用内置函数查看数据类型
print(type(100)) #
print(type(99)) #
print(type(520)) #
返回值都是int类型,这些数都是int类,而100、 99、 520都是int类里的对象
100、 99、 520都是int类之下包含的相似的不同的个例,这个个例专业术语称为实例或对象
面向对象基础语法:

dir内置函数(知道)
1.在Python中对象几乎是无所不在的,我们之前学习的变量、数据、函数、都是对象
2.在python中可以使用内置函数dir传入表示符/数据,可以查看对象内的所有属性及方法

使用方法:dir(函数名)

提示__方法名__格式的方法是python提供的内置方法/属性

1.__new__ 创建对象时,会被自动调用
2.__init__ 对象被初始化时,会被自动调用
3.__del__ 对象被从内存中销毁前,会被自动调用
4.__str__ 返回对象描述信息,print函数输出使用

利用好dir()函数,在学习时很多内容就不需要死记硬背了

相关文章
|
3天前
|
C++ Python
Python中的类与对象
Python中的类与对象
6 1
|
6天前
|
Python
在Python中,类的属性可以分为公有属性和私有属性
Python类包含公有和私有属性。公有属性可直接外部访问,如`person.name`,而私有属性如`_name`需通过getter/setter方法访问,如`person.getName()`和`person.setName()`。私有属性用于封装数据、隐藏实现细节,增强代码可维护性和安全性。封装能灵活修改内部实现,不影响外部;安全性防止外部非法修改数据;一致性确保所有数据操作在类内完成,简化代码并减少错误。
24 10
|
6天前
|
Python
【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
【5月更文挑战第6天】【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
|
6天前
|
存储 程序员 Python
Python中自定义类实例化数组的艺术
Python中自定义类实例化数组的艺术
8 1
|
6天前
|
程序员 Linux C++
Python中的WinForms类桌面应用程序开发
Python中的WinForms类桌面应用程序开发
23 4
|
9天前
|
Java 开发者 索引
Python基础语法:类笔记
本篇博文是把自己在学习python类的过程中自己理解和笔记,一点一点总结的写出出来,做一个总结,加深对面向对象编程的理解。
|
9天前
|
Python
Python中的面向对象
【5月更文挑战第4天】面向对象编程(OOP)是Python的核心,涉及类与对象、封装、继承和多态。类是对象的模板,对象则是类的实例。例如,`Person`类有`__init__`构造方法和`greet`方法。
15 3
|
13天前
|
数据可视化 索引 Python
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
|
14天前
|
算法 Python
Python面向对象oop编程(二)
Python面向对象oop编程(二)
|
17天前
|
缓存 Java Python
Python 弱引用全解析:深入探讨对象引用机制!
Python 弱引用全解析:深入探讨对象引用机制!
22 3