Python教程54:面向对象(类与对象)

编程入门 行业动态 更新时间:2024-10-27 10:26:04

Python教程54:<a href=https://www.elefans.com/category/jswz/34/1769334.html style=面向对象(类与对象)"/>

Python教程54:面向对象(类与对象)

面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程思想,它强调万物皆对象,因此在编程时我们可以将现实世界中的事物抽象成程序中的对象,从而更好实现软件的设计与开发。与传统的基于函数的编程不同,面向对象编程注重于将数据与行为封装在一起,即对象既包含数据状态,还包含可调用的行为方法。

#我的Python教程
#微信公众号:wdPython

Python教程17:面向对象(类与对象)

1.0 编程思想:面向过程和面向对象思想含义与关系。

面向过程:它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成:一个个函数和数据(用于方法的参数) 。然后按照一定的顺序,执行完这些方法(每个方法看作一个过程),等方法执行完了,事情就搞定了。数据和函数之间的联系较弱,函数通常使用全局变量或参数传递数据。对于复杂的问题,可能需要编写大量的函数来实现算法和逻辑。

面向对象:它是注重对象的。当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。

**1.1 面向过程和面向对象的关系:**它们的相同点在于都可以用来解决问题,但是它们的不同点在于解决问题的思维方式和代码组织方式不同。

面向过程是一种“执行者思维”,它将问题分解为一系列的步骤,然后按照步骤顺序执行。而面向对象是一种“设计者思维”,它将问题分解为一系列的对象,然后通过对象之间的交互来解决问题。

面向对象的优点在于可以更好地处理复杂、需要协作的问题,而面向过程则适用于解决简单问题。此外,面向对象离不开面向过程,因为在面向对象的实现过程中,仍然需要使用面向过程的方式来执行和处理数据。

1.2 举例说明:

面向过程的例子:
制造业:在制造业中,可以按照一系列的步骤来制造一个产品,例如:设计产品、制定制造计划、采购原材料、生产加工、质量检测等。每个步骤都可以被视为一个函数,按照顺序执行。

机票预定:当乘客预订航班时,他们可以搜索航班、选择座位、输入乘客信息、选择支付方式、进行支付等。每个步骤都可以被视为一个函数,按照顺序执行。

餐饮业:在餐饮业中,可以按照一系列的步骤来准备一道菜,例如:准备食材、烹制、调味、装盘等。每个步骤都可以被视为一个函数,按照顺序执行。

面向对象的例子:

人与洗衣机:可以定义两个对象,“洗衣机”和“人”。针对“洗衣机”对象添加一些属性和方法,例如“洗衣服”、“清洗”和“烘干”方法。同样地,针对“人”对象添加一些属性和方法,“加洗衣粉”和“加水”方法。然后通过执行“人”对象的这些方法来控制洗衣机进行洗衣和烘干等操作。

医疗领域:在医疗领域中,可以定义多种对象,如病人、药品、病症、手术等。每个对象都有其特定的属性和方法,例如病人有姓名、年龄、性别等属性,药品有名称、成分、功效等属性,病症有症状、诊断方法等属性,手术有手术方法、手术风险等属性。通过这些对象的交互,可以实现医疗活动的模拟和管理。

手机:可以定义一个手机对象,包含品牌、型号、内存、屏幕等属性,并可以定义打电话、发短信、上网、拍照等方法来扩展该对象的功能。

1.3 id,dir,type内置函数的用法

id() 函数:返回一个对象的唯一标识符。这个标识符通常是一个整数,代表着对象在内存中的地址。

dir() 函数:用于返回对象的所有属性和方法。

type() 函数:返回一个对象的类型。这可以用来检查对象的类型。

Object类:是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类;

class Test1:def __init__(self):self.aa = 10class Test2(object):def __init__(self):self.bb = 20a = Test()
b = Test1()
# 1.对象的唯一标识符
print(id(a)) # 1859812710288
print(id(b)) # 1859812710352# 2.对象的所有属性和方法
print(dir(a))
print(dir(b))# 3.对象的类型
print(type(a)) #输出 <class '__main__.Test'>
print(type(b)) #输出 <class '__main__.Test1'>

2. 类和对象的理解,创建,调用

类(Class): 用来描述具有相同的属性和方法的对象的集合。定义一个类使用class关键字实现,首字母大写,惯例采用驼峰式命名法。

对象:类并不能直接使用,通过类创建出的实例(又称对象)才能使用。这有点像汽车图纸和汽车的关系,图纸本身(类)并不能为人们使用,通过图纸创建出的一辆辆车(对象)才能使用。

属性:类中的所有变量称为属性。 外面调用方法:实例化的对象.变量名, 里面调用方法:self.变量名。

方法:类中的所有函数通常称为方法。和函数不同的是,类方法至少要包含一个 self 参数,在类中定义的函数叫方法。 外面调用方法:实例化的对象类.方法

3. 实例方法、静态方法和类方法的概念及调用

实例方法:这是最常见的方法,它们被定义在类中,并接受一个名为self的参数,这表示类的实例。通过这个方法,你可以访问该实例的属性和其他实例方法。调用类属性:self.类属性

静态方法:这些方法在类中定义,无参数。因此,它们不能访问类的实例属性或方法。静态方法通常用于创建不需要访问对象状态的实用程序。调用类属性:类名.类属性

类方法:类方法接受一个名为cls的参数,这表示类本身,而不是类的实例。通过这个方法,你可以访问类属性,但不能访问实例属性。类方法通常用于创建需要访问类状态的实用程序。调用类属性:cls.类属性

# @Author : 小红牛
# 微信公众号:WdPython
# 定义一个Person类
class Person: # 类名# 类属性:介于类里面,和方法之间的变量dynasty = '唐'def __init__(self, name, age):# 实例属性,通过实例对象来访问self.name = nameself.age = age# 实例方法:放在类里面的函数def introduce(self):print(f'实例方法中调用类属性:{self.dynasty}')print(f"大家好,我是{self.name},今年{self.age}岁!!")# 静态方法的写法@staticmethoddef static_method():print(f'静态方法中调用类属性:杜甫是{Person.dynasty}代诗人')# 类方法@classmethoddef class_method(cls):print(f'类方法中调用类属性:{cls.dynasty}')print(f'类方法中调用类属性:李商隐是{Person.dynasty}代诗人!')# 1调用类属性
print(f'通过类名.调用类属性: {Person.dynasty}')# 对象方法的调用
# 2.创建一个人物对象
p = Person("李白", 18)print(f'对象调用的属性:{p.name} {p.dynasty} {p.age}')
# 实例方法的调用
p.introduce()print('下面是静态方法和类方法的调用'.center(50,'-'))
# 3.静态方法和类方法的调用
#Person.static_method()
p.static_method()Person.class_method()
#p.class_method()

更多推荐

Python教程54:面向对象(类与对象)

本文发布于:2023-12-03 20:45:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657466.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:面向对象   对象   教程   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!