Python 复数类 Complex:前置与后置自增运算符重载全解析
```python class Complex: def __init__(self, real, imag): # 初始化复数的实部和虚部 self.real = real self.imag = imag def __str__(self): # 重写 __str__ 方法,方便打印复数 return f"({self.real}+{self.imag}j)" def __pos__(self): # 前置自增运算符重载 self.real += 1 self.imag += 1 return self def __add__(self, other): # 后置自增运算符重载 if other == 1: result = Complex(self.real, self.imag) self.real += 1 self.imag += 1 return result return NotImplemented # 读取输入 real, imag = map(int, input().split()) # 创建复数对象 c = Complex(real, imag) # 前置自增 print(+c) # 后置自增 print(c + 1) print(c) ``` 额外需要注意的逻辑点 1. 在重载后置自增运算符时,需要先保存原复数对象的值,再对当前对象进行自增操作,最后返回原对象的值。 2. 要注意前置自增和后置自增运算符的返回值不同,前置自增返回自增后的对象,后置自增返回自增前的对象。 3. 对于运算符重载,要确保在不满足操作条件时返回 `NotImplemented`,以避免不必要的错误。 ######[AI写代码神器 | 357点数解答 | 2025-06-06 17:22:02]
- C++ 文件读取与内存分配:代码错误修正及完善示例(字节豆包 | 413点数解答 | 2024-11-02 18:16:35)318
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)462
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)417
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)409
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)278
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)308
- Python开发必知://、%、**运算符深度解析(阿里通义 | 317点数解答 | 2023-11-08 00:49:49)962
- Android 开发:Kotlin 中简洁实用的 Elvis 运算符全解析(百度文心 | 231点数解答 | 2023-11-09 17:28:21)270
- Android开发:Kotlin双感叹号(!!)运算符全解析及使用风险(百度文心 | 334点数解答 | 2023-11-09 17:28:33)294
- Python+Tkinter:打造30以内加减乘除随机出题、判题打分GUI小程序(GPT | 1266点数解答 | 2024-06-19 14:45:56)325
- Python 复数类 Complex:前置与后置自增运算符重载全解析(字节豆包 | 357点数解答 | 2025-06-06 17:22:02)132
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)394