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()函数,在学习时很多内容就不需要死记硬背了

相关文章
|
28天前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
29天前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
1月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
17 1
|
1月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
21 2
WK
|
1月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
13 0
|
1月前
|
程序员 开发者 Python
深度解析Python中的元编程:从装饰器到自定义类创建工具
【10月更文挑战第5天】在现代软件开发中,元编程是一种高级技术,它允许程序员编写能够生成或修改其他程序的代码。这使得开发者可以更灵活地控制和扩展他们的应用逻辑。Python作为一种动态类型语言,提供了丰富的元编程特性,如装饰器、元类以及动态函数和类的创建等。本文将深入探讨这些特性,并通过具体的代码示例来展示如何有效地利用它们。
35 0
|
1月前
|
Python
Python中的类(一)
Python中的类(一)
|
1月前
|
Python
Python中的类(一)
Python中的类(一)
|
Java Python
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
254 0
Python基础 | 深浅拷贝问题、递归函数练习
|
Python
python——基础练习(五)
python——基础练习(五)
134 0
python——基础练习(五)