0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python-面向对象

汽车电子技术 来源:程序猿知秋 作者:程序猿知秋 2023-02-16 15:20 次阅读

基本概念

面向过程

  • 是早期的一个编程概念,类似函数,但是没有返回值
  • 具体做法:
    • 把完成某个需求的所有步骤,从头到尾 逐步实现
    • 将某些功能独立的代码 封装成一个又一个 函数
    • 然后顺序调用不同的函数
  • 特点:
    • 注重 ** 步骤与过程,** 不注重职责分工
    • 如果需求复杂,代码会变得很复杂
    • 开发复杂项目,没有固定的套路,开发难度大

**面向对象

**

  • 相较于函数, 面向对象是更大的封装 ,根据** 职责** 在一个对象中封装多个方法
  • 在完成某个需求前,首选确定 ** 职责** ,根据职责确定不同的对象,在对象内部封装不同的方法
  • 最后让不同的对象调用不同的方法
  • 特点:
    • 注重 对象和职责 ,不同的对象承担不同的职责
    • 更加适合对应复杂的需求变化,专门应对复杂项目开发,提供固定套路

**类和对象

**

  • 对象 是面向对象的两个核心概念
  • 在程序开发中,先有 ,后有 对象
    • 对一群具有相同 特征 或 行为的事物的一个统称,是抽象的,不能直接使用
      • 特征 即 属性
      • 行为 即 方法(函数)
    • 类相当于做汽车的 图纸是一个模板, 而根据这个 **模板 **做出来的具体物品就是 对象
    • 三要素
      • 类名 这类事物的名字 使用大驼峰命名法(HelloWorld)
      • **属性 **指这类事物的特征
      • 方法 指这类事物具备的行为
  • 对象
    • **对象 **是根据类创建出来的一个具体存在,可以直接使用
    • 根据类创建出来的对象,具备与类相同的 属性方法

**类和对象的关系

**

  • 类是模板,对象 是根据 **类 **这个模板创建出来的,先有类,后有对象
  • 类 只有一个,根据这个类创建的 对象 可以有多个
    • 不同的对象之间,属性可能会各有不同
  • 类 中定义了什么样的属性和方法,对象中就是什么样的属性与方法

基础语法

dir内置函数

  • Python 中,对象几乎无所不在,变更、数据、函数都是对象
  • 使用内置函数** dir** 传入 ** 标识符/数据** ,可以查看对象内的所有属性和方法
  • 方法名 格式的方法是Python提供的 内置方法/属性
  • 常见方法如下| 方法名 | 类型 | 作用 |
    | ------------------ | ---------------- | ---------------------------------------- |
    | new | 方法 | 创建对象时,会被自动调用 |
    | init | 方法 | 对象被初始化时,会被自动调用 |
    | del | 方法 | 对象被从内存中销毁时,会被自动调用 |
    | str | 方法 | 返回对象的描述信息,print 函数输出使用 |

示例

# 定义函数,测试内置方法
def demo():
  pass


print(dir(demo))

输出结果

图片

定义简单类

  • **面向对象 **是更大的封装,在一个类中封装多个方法,通过这个类创建的对象 可以直接使用这些方法
  • 类中方法的定义,与之前定义函数时,几乎一样,区别在于每一个参数必须是 self,** self 表示调用者本身的引用**
  • 调用中对象中的方法时,self 不需要传递
  • 可以通过 self 调用对象的其它属性或方法

示例

"""
需求:
定义一个狗类,狗有 吃骨头,睡觉两个方法


"""
class Dog:


  # 第一个参数 必须是 self,表示调用者本身的引用
  def eat(self):
    print("狗狗要吃骨头了...")


  def sleep(self):
    print("狗狗要睡觉了...")


# 定义对象调用方法
dog=Dog()
dog.eat()
dog.sleep()


# 定义第二个 狗对象
dog2=Dog()
dog2.eat()
dog2.sleep()


# dog 和dog2 是用同一个类 创建出来的,里面的方法和属性是一样的,但是对象的引用是不同的
print(dog)
print(dog2)

输出结果

图片

对象的初始化

  • 当使用 类名() 创建对象时,会 自动 执行以下操作
    • 为对象分配内存空间
    • 为对象的属性设置初始值(即调用 init 方法)
  • **init **是对象的内置方法,专门用来定义一个类 具有哪些属性的方法

**示例

**

class Dog:


  def __init__(self,name):
    print("开始初始化Dog的属性...")
    self.name=name


  def eat(self):
    print("%s 开始吃骨头了..."%self.name)


  def sleep(self):
    print("%s 想要睡觉了..." %self.name)




# 定义对象,并为其属性赋值
dog=Dog("小白")
dog.eat()
dog.sleep()


dog2=Dog("小黑")
dog2.eat()
dog2.sleep()

输出结果

图片

**内置方法

**

  • del 方法:当一个对象被从内存中销毁时,会自动调用
  • 应用场景
    • init 改造初始化方法,可以让对象更加灵活
    • del 如果希望对象在被销毁前,再做一些事情,可以使用此方法
  • 生命周期
    • 一个对象从调用 类名() 创建,生命周期开始
    • 一个对象的 del 方法一旦被调用,生命周期结束
    • 在对象的生命周期内,可以访问对象属性,或者调用对象方法
  • str 方法: 默认打印 对象变量的引用内存地址值, 如果希望使用 print 输出对象变量时,能够打印 自定义的内容 ,就可以利用 str 方法,该方法必须返回一个字符串

示例

class Dog:


  def __del__(self):
    print("小黑去轮回了......")


  def __str__(self):
    return "我是小黑的自定义打印内容。。。"


dog=Dog()
print(dog)
print("---------------11111111111")

输出结果

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3587

    浏览量

    93580
  • 函数
    +关注

    关注

    3

    文章

    4303

    浏览量

    62411
收藏 人收藏

    评论

    相关推荐

    Python面向对象编程详解

    一般编程可分为面向过程编程,和面向对象编程。Python面向对象编程,与Java的
    发表于 09-04 16:35 522次阅读
    <b class='flag-5'>Python</b>的<b class='flag-5'>面向</b><b class='flag-5'>对象</b>编程详解

    labview面向对象编程

    点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程使用LabVIEW面向对象编程方法,对于大型测试应用程序来讲,面向对象相对于面向
    发表于 11-24 11:01

    3分钟看懂Python面向对象

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在
    发表于 06-08 14:20

    面向对象编程及其三大特性 精选资料分享

    编程语言分为面向过程编程、函数式编程和面向对象编程。其实python就是一种面向对象编程,那么我
    发表于 07-21 08:38

    谈谈面向对象编程

    在工业自动化领域,梯形图逻辑仍然是最常用的编程语言之一,但对于更加复杂的控制对象面向对象编程不失为一种高效率的方式。下面先来谈谈面向对象
    发表于 09-08 07:47

    面向对象编程总结

    如何从面向过程到面向对象OOP?面向对象是什么?有何特点?
    发表于 09-29 08:19

    请问python-树莓派如何通过按键控制步进电机正反转?

    步进电机驱动原理是什么?python-树莓派如何通过按键控制步进电机正反转?
    发表于 10-09 08:45

    面向对象编程介绍

    目录一、面向对象编程介绍1.面向过程编程2.函数式编程3.面向对象编程二.面向
    发表于 12-13 07:22

    python-控制khr3hv-master机器人

    python-控制khr3hv机器人,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-22 15:40 2次下载

    这可能是Python面向对象编程的最佳实践

    本节介绍了attrs和cattrs两个库,让实现Python面向对象编程不再难。
    的头像 发表于 06-22 12:07 2660次阅读

    利用Python和PyTorch处理面向对象的数据集

    本篇是利用 Python 和 PyTorch 处理面向对象的数据集系列博客的第 2 篇。 如需阅读第 1 篇:原始数据和数据集,请参阅此处。 我们在第 1 部分中已定义 MyDataset 类,现在
    的头像 发表于 08-25 15:30 2952次阅读

    利用 Python 和 PyTorch 处理面向对象的数据集(2)) :创建数据集对象

    本篇是利用 Python 和 PyTorch 处理面向对象的数据集系列博客的第 2 篇。我们在第 1 部分中已定义 MyDataset 类,现在,让我们来例化 MyDataset 对象
    的头像 发表于 08-02 17:35 900次阅读
    利用 <b class='flag-5'>Python</b> 和 PyTorch 处理<b class='flag-5'>面向</b><b class='flag-5'>对象</b>的数据集(2)) :创建数据集<b class='flag-5'>对象</b>

    面向过程与面向对象的区别

    说起面向对象,大家可能会想到其他的,但是此对象非彼对象哈哈,不必惊慌,也特别好搞定。 在听到面向
    的头像 发表于 02-15 11:10 4056次阅读
    <b class='flag-5'>面向</b>过程与<b class='flag-5'>面向</b><b class='flag-5'>对象</b>的区别

    Python中的类和对象详解

    Python 是一种面向对象的编程语言,它支持类和对象。类是一种用户自定义的数据类型,用于定义对象的属性和方法。
    的头像 发表于 04-20 16:53 1051次阅读

    Python面向对象深化(下)

    __call__  方法和可调用对象 凡是可以将 () 直接应用到自身并执行, 都称为可调用对象. 注意: 可调用对象包括自定义的函数、Python 内置函数、以及本节所讲的实例
    的头像 发表于 05-11 17:52 635次阅读