首页 > 编程语言 >Python中的__add__()方法

Python中的__add__()方法

时间:2024-01-14 23:24:37浏览次数:22  
标签:__ real Python self ComplexNumber add imag

  在 Python 中,__add__() 是一个特殊方法(magic method),用于定义对象之间的加法操作。当你使用 + 运算符对两个对象进行相加时,实际上会调用对象的 __add__() 方法。

  下面是一个简单的例子,演示了 __add__() 的用法:

class ComplexNumber:
    def __init__(self, real, imag):
        self.real = real
        self.imag = imag

    def __add__(self, other):
        # 实现两个复数相加的逻辑
        if isinstance(other, ComplexNumber):
            real_sum = self.real + other.real
            imag_sum = self.imag + other.imag
            return ComplexNumber(real_sum, imag_sum)
        else:
            raise TypeError("Unsupported operand type. Must be a ComplexNumber.")

    def __repr__(self):
        return f"ComplexNumber({self.real}, {self.imag})"

# 创建两个复数对象
c1 = ComplexNumber(1, 2)
c2 = ComplexNumber(3, 4)

# 使用加法运算符相加两个对象
result = c1 + c2

# 输出结果
print(result)  # 输出 ComplexNumber(4, 6)

  在这个例子中,ComplexNumber 类实现了 __add__() 方法,使得两个 ComplexNumber 对象可以使用 + 运算符相加。在 __add__() 方法中,我们对两个复数的实部和虚部分别相加,然后返回一个新的 ComplexNumber 对象。

  这种方法的实现允许你在自定义类中定义对象之间的加法行为,使得类的实例可以通过 + 运算符进行自然的相加操作。




NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化(公众号)

NLP工程化(知识星球)

标签:__,real,Python,self,ComplexNumber,add,imag
From: https://www.cnblogs.com/shengshengwang/p/17964432

相关文章

  • 学习进度笔记3
    1.计算级数请用脚本的方式编程计算并输出下列级数的前n项之和Sn,直到Sn刚好大于或等于q为止,其中q为大于0的整数,其值通过键盘输入。例如,若q的值为50.0,则输出应为:Sn=50.416695。请将源文件保存为exercise2-1.scala,在REPL模式下测试运行,测试......
  • Visual Studio 2010 授权修改
    参见以下步骤:32位的系统中,修改以下注册表键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Registration\UserNameHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\RegisteredOrganization64位系统,修改以下注册表键值HKEY_LOCAL_MACHINE\SOFT......
  • Python中的__call__()方法
      在Python中,__call__()是一个特殊方法(magicmethod),用于使对象变成可调用(callable)。当一个对象实现了__call__()方法时,你可以像调用函数一样调用这个对象,就好像它是一个函数一样。  下面是一个简单的例子,演示了__call__()的用法:class CallableObject:    def _......
  • Java基础
    Java基础一、注释//1、单行注释//我是单行注释//2、多行注释/*我是多行注释*///3、文档注释/***@Description我是文档注释*@Author作者*///4、有趣的注释/****_ooOoo_*o8888888o*88......
  • 【Vue】前端直接显示MySQL Datatime时间,显示为英文如何处理
    问题如图想让时间显示为自己想要的格式,可以自己编写一个函数constformatDate=(timestamp)=>{constdate=newDate(timestamp);constyear=date.getFullYear();constmonth=String(date.getMonth()+1).padStart(2,'0');constday=String(date.getDate......
  • Python中的魔法方法
      Python中有很多魔法方法,它们以双下划线__开头和结尾,用于实现类的特殊行为。以下是一些常用的魔法方法:1.__init__(self,...)  初始化方法,用于创建对象并设置初始状态。2.__str__(self)  返回对象的非正式字符串表示形式,通过str()函数调用。3.__repr__(self)......
  • ch01_投资与量化投资
    一、什么是投资1.1经济意义上的投资投资是为获得一定的预期社会经济效益而进行的资金或资本物的投入及其活动过程。1.2投资的分类实物资产,又称实质资产或有形资产,是以实物形态存在的资产,如汽车、房屋、机器设备、各种原料、材料等,是固定资产与流动资产、生产流通性固定资产......
  • 11.10
    《程序员的修炼之道:从小工到专家》的第三章节主要探讨了“技术深度与广度”的问题。这一章节强调了技术深度和广度对于程序员的重要性,以及如何在这两个方面取得平衡。首先,作者指出技术深度是程序员的核心竞争力。只有深入理解某个领域的技术,才能更好地解决相关问题。因此,程序员需......
  • 11.8
    《代码大全2》是一本非常经典的软件开发书籍。在书中,强调了比较优秀的代码结构和命名规范的重要性。书中注释的部分帮助我理解怎么去编写有意义的注释,合适的注释可以提供代码理解上的便利,但是过多或者无关的注释会干扰代码的可读性。还有书中关于代码复用和模块化的内容帮助学习......
  • 两万字长文世界编程语言大串讲
    layout:posttitle:"两万字长文:编程语言大串讲"tags:-"编程语言"-"大道至简"TL;DR本文收录在《大道至简,给所有人看的编程书》第3章,讲述了编程语言的发展历史,以及各种编程语言的特点。本文是一篇长文,大约两万字,建议在电脑上阅读。公认的世界上“第一位给计算机......