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

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

3天内不再提示

详解面向对象(二)

冬至配饺子 来源:多兰多 作者:Toranto 2022-08-18 15:04 次阅读

__init__方法创建对象

__init__()

类构造方法:在创建类时,我们可以手动添加一个

__init__()

方法,该方法是一个特殊的类实例方法,称为构造方法(也叫初始化)。构造方法用于创建对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它。Python 类中,手动添加构造方法的语法格式如下:

poYBAGL94y6APdBKAAARO8RPZso472.png

注意,__init__,开头和结尾各有 2 个下划线,且中间不能有空格。Python 中很多这种以双下划线开头、双下划线结尾的方法,都具有特殊的意义。
如果__init__方法有参数的话:在实例化的时候除了self,其他的需要手动传递参数:

poYBAGL9412ARwhjAADcT2yTXqA265.png

init类构造方法归结起来就是谁调用赋值谁。

我们还可以给上面这段代码加点料,产生计数器的效果:

pYYBAGL9466AB4guAADapc5L070216.png

__dict__查看属性

使用__dict__,可以查看定义的类的属性(不包含公有属性),可以理解为公有属性是本身就具备的,而非后来定义。具体用法为:

print

(对象.__dict__)

poYBAGL94_KAJIlVAAAnGK_qVwY470.png

小实例

模仿英雄联盟(LOL)定义两个英雄类

要求:1、英雄有昵称、生命值、攻击力2、实例化出两个英雄对象3、英雄之间可以互殴,被打的一方掉血,血量小于0判断死亡

poYBAGL95CSAGBEzAAEAt-a-7bg539.pngpoYBAGL95CqAfO1yAAFw-StOBRA277.pngpYYBAGL95DOAbeRwAAAk_iQvuA4193.png

组合

在一个类中以另一个类的对象作为数据属性,称为类的组合。

例如:

有一个士兵类

属性:姓名,武器

枪火类

属性:名称,子弹数量,杀伤力

方法:开火,装弹

pYYBAGL95FuAV__CAAEBco9KKkc600.pngpoYBAGL95GKAc98KAABnZnZtlJM874.png

第40行就是组合。




审核编辑:刘清


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

    关注

    32

    文章

    2127

    浏览量

    93048
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83485
  • 解释器
    +关注

    关注

    0

    文章

    98

    浏览量

    6423
收藏 人收藏

    评论

    相关推荐

    基于C/C++面向对象的方式封装socket通信类流程简析

    在掌握了基于 TCP 的套接字通信流程之后,为了方便使用,提高编码效率,可以对通信操作进行封装,本着有浅入深的原则,先基于 C 语言进行面向过程的函数封装,然后再基于 C++ 进行面向对象的类封装。
    的头像 发表于 12-26 10:00 693次阅读

    基于C/C++面向对象的方式封装socket通信类

    在掌握了基于 TCP 的套接字通信流程之后,为了方便使用,提高编码效率,可以对通信操作进行封装,本着有浅入深的原则,先基于 C 语言进行面向过程的函数封装,然后再基于 C++ 进行面向对象的类封装。
    的头像 发表于 12-26 09:57 501次阅读

    浅谈C语言面向对象编程思想

    C语言是一种面向过程的语言,但是也可以用结构体和函数指针来模拟面向对象的特性,比如封装、继承和多态。
    发表于 11-02 12:27 264次阅读

    非常实用,推荐一种面向对象思维的单片机程序框架

    非常实用,推荐一种面向对象思维的单片机程序框架
    的头像 发表于 10-24 18:03 297次阅读
    非常实用,推荐一种<b class='flag-5'>面向</b><b class='flag-5'>对象</b>思维的单片机程序框架

    MCU上面可以实现面向对象编程吗?

    为什么都是用的面向过程编程
    发表于 10-24 07:39

    面向对象思想封装IIC、AT24C64驱动

    使用面向对象的编程思想封装IIC驱动,将IIC的属性和操作封装成一个库,在需要创建一个IIC设备时只需要实例化一个IIC对象即可,本文是基于STM32和HAL库做进一步封装的。
    的头像 发表于 10-08 15:35 509次阅读

    Python的面向对象编程详解

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

    Linux内核中面向对象编程的实现

    面向对象编程(OOP),是一种设计思想或者架构风格。OO语言之父Alan Kay,Smalltalk的发明人,在谈到OOP时是这样说的。
    发表于 07-21 14:51 315次阅读

    什么是面向对象编程(OOP)?面向对象的程序设计

    在编程领域,面向对象编程 (OOP) 是一种强大的范例,使开发人员能够构建复杂且可扩展的应用程序。
    的头像 发表于 07-19 14:57 797次阅读

    状态机编程实例-面向对象的状态设计模式

    本编介绍了状态机编程的第3种方法——面向对象的状态设计模式,通过C++的继承特性,以及类指针,实现炸弹拆除小游戏中的状态机功能。
    的头像 发表于 06-28 09:04 929次阅读
    状态机编程实例-<b class='flag-5'>面向</b><b class='flag-5'>对象</b>的状态设计模式

    多态性实现原理及其在面向对象编程中的应用

    面向对象的编程中,多态性是一个非常重要的概念。
    的头像 发表于 06-08 14:19 411次阅读

    PyTorch教程3.2之面向对象的设计实现

    电子发烧友网站提供《PyTorch教程3.2之面向对象的设计实现.pdf》资料免费下载
    发表于 06-05 15:48 0次下载
    PyTorch教程3.2之<b class='flag-5'>面向</b><b class='flag-5'>对象</b>的设计实现

    PyTorch教程-3.2. 面向对象的设计实现

    3.2. 面向对象的设计实现¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的头像 发表于 06-05 15:38 278次阅读
    PyTorch教程-3.2. <b class='flag-5'>面向</b><b class='flag-5'>对象</b>的设计实现

    Python面向对象深化(下)

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

    Python面向对象深化(上)

    , 在城堡的最顶端可以眺望到天空之海. 直到格兰之森那场大火的发生,使得围绕在它周围的魔法阵力量减弱,人们才终于重新看到天空之城的真实模样. 当时,关于天界的传闻甚至比天上的繁星还多,但是却没有一个人能够证明它真实存在。 实例对象和类对象创建过程内
    的头像 发表于 05-11 17:51 409次阅读
    Python<b class='flag-5'>面向</b><b class='flag-5'>对象</b>深化(上)