[再学Python] - 面向对象的程序设计- 对象和类

对象和类

对象包含两种特征:

  • 状态
  • 行为
    类:某种类型集合的描述。
    属性:类本身的一些特性。
    方法:类所能实现的行为。

类的定义

类的定义的语法

class classname[(父类名)]:	
[成员函数及成员变量]

classname是这个类的名称,而父类名是可选的。但定义父类以后,子类则具有父类的相应属性和方法。

  • _init_构造函数:初始化对象的各个属性
  • _del_析构函数:销毁对象

类的定义示例

在这里插入图片描述
创建一个student类,每个student类型的对象都包含三个信息:

  • name
  • hours
  • qpoints

为了程序命名更加规范,将定义的参数与类内变量的名字相对应,构造函数接收float、int或string类型的参数。

在上述类的定义里,将hoursqpoints的类型强制转换成float类型。

建立类的方法

在这里插入图片描述

面向对象的特点

  • 封装
  • 多态
  • 继承

封装

  • 抽象对象(我的理解是和形参类似的意思)
  • 打包数据和操作(数据和操作放到一起)
  • 对象的实现和使用相互独立
  • 支持代码复用

比如下面的Projectile类:

  • Projectile类封装了投射体的属性和方法
  • 主程序不关心铅球内部实现
  • Projectile类可以被多个程序和对象使用

###多态

  • 对象怎么回应消息
  • 同一函数名启用不同方法

比如一个图形对象列表:

  • 列表包含Circle、Rectangle、Polygon
  • 使用相同代码,画出列表所有的图形
    下面这个代码在obj分别是Circle、Rectangle、Polygon时,执行Circle、Rectangle、Polygon的draw方法。
for obj in objects:
	obj.draw(win)
  • 灵活性

继承

一个类(subclass)可以借用另一个类(superclass)的行为。

  • 避免操作重复
  • 提升代码复用程度(新类经常基于已存在的类)

比如员工信息系统:

  • Employee类,包含员工的一般信息。比如有homeAddress()方法
  • 子类正式员工SalariedEmployee、子类临时员工HourlyEmployee。二者作为Employee类的子类,二者可以继承homeAddress()方法

学生GPA计算的完整代码

在这里插入图片描述

计算铅球位置的示例

程序主函数

在这里插入图片描述

定义Projectile类

在这里插入图片描述

面向对象的程序化模块

要先引入Projectile类:

from Projectile import *

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 面向对象程序设计分为两种,一种是基于的,另一种是基于原型的。其中基于程序设计是最常见的一种,它主要涉及到两个概念,即对象是一个抽象的概念,它描述了一具有相同属性和方法对象,而对象则是具体的实例。在基于程序设计中,用于描述对象的属性和方法,而对象则是的具体实现。因此,基于程序设计更注重对象的封装、继承和多态等概念。 ### 回答2: 面向对象编程是一种程序设计范式,它把程序看作是一组对象的集合,每个对象都有一个特定的属性和方法。在Python中,每个对象都是一个的实例,是一个抽象的概念,用于表示一组相似的对象对象的实例,它继承了的属性和方法,同时可以拥有自己的属性和方法。 在Python中,定义的语法为: class ClassName: # 属性和方法定义中,可以定义属性和方法的属性是一些数据,用来描述的特征;方法是一些函数,用来描述行为。同时,还可以继承其他的属性和方法,通过继承,子可以重用父的代码,同时也可以增加自己的属性和方法。 在Python中,对象的创建和使用的语法为: object_name = ClassName() 在对象的创建过程中,会调用的构造函数(__init__()方法),用来初始化对象的属性和方法。然后,可以使用对象的属性和方法来完成具体的任务。 在面向对象编程中,有三个重要的概念,分别是封装、继承和多态。封装是指把数据和行为包装在一个中,对外部隐藏具体的实现细节;继承是指子可以继承父的属性和方法,在子中可以重写父方法和添加自己的方法;多态是指同一个方法可以在不同的对象上产生不同的结果,通过实现多态,程序可以更加灵活和可扩展。 最后,在Python中,还可以通过__str__()方法来自定义对象的字符串表示方式,方便输出和调试。同时,还可以通过@property和@setter装饰器来实现属性的封装和保护。 总之,对象面向对象编程的基础,它提供了一种更加灵活和可扩展的编程方式,同时也对程序的设计和架构提出了更高的要求。因此,熟练掌握对象的相关知识,是Python编程的基础和必备技能。 ### 回答3: Python中的面向对象编程(Object-Oriented Programming,OOP)是一种将数据和行为封装在一起,以创建对象为中心的思想。在Python中,一切皆为对象,从简单的数字、字符串到复杂的列表、元组都是对象面向对象(Object-Oriented)编程中最基本的两个概念是对象是一种数据型,是一组相关数据和方法的描述。其实就是一个对象的模板,包含了它所描述的对象共有的属性和方法Python中定义方法比较简单,使用关键字`class`即可,例如: ```python class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print("汪汪!") ``` 上述代码定义了一个Dog,包含了Dog对象共有的属性(name和age)和方法(bark)。通过关键字`def`定义Dog方法,其中`__init__`方法是一个特殊的方法,用于初始化对象属性。 当我们需要使用Dog时,需要将它实例化为一个对象。例如: ```python dog1 = Dog("小黑", 3) dog1.bark() # 输出:汪汪! ``` 上述代码创建了一个Dog对象,设置了它的name为“小黑”,age为3,然后调用了Dog方法bark。 另外,Python中还有一些内置函数,可以用于操作对象。例如: - `type`函数:用于返回对象型。使用方法为`type(object)` - `isinstance`函数:用于检查对象是否为指定的实例。使用方法为`isinstance(object, classinfo)` - `hasattr`函数:用于检查对象是否具有指定的属性。使用方法为`hasattr(object, name)` - `getattr`函数:用于获取对象的属性值。使用方法为`getattr(object, name[, default])` - `setattr`函数:用于设置对象的属性值。使用方法为`setattr(object, name, value)` 以上是Python中定义和使用的基本语法和函数,掌握了这些知识后,可以尝试设计自己的并应用到实际的编程项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值