python-3.x - 自定义添加方法后的python打印错误
问题描述
我正在尝试使用 python 制作时间码计算器,但我不明白为什么输出错误:
class Time:
def __init__(self, hour=0, minute=0, second=0, image=0):
self.hour = hour
self.minute = minute
self.second = second
self.image = image
def __str__(self):
return "{:02d}:{:02d}:{:02d}:{:02d}".format(self.hour, self.minute, self.second, self.image)
def __add__(self, second_time):
new_time = Time()
#define image add for 24 FPS
if(self.image + second_time.image) >= 24:
self.second += 1
new_time.image = (self.image + second_time.image) - 24
else:
new_time.image = self.image + second_time.image
#define second add for 24 FPS
if(self.second + second_time.second) >= 60:
self.minute += 1
new_time.second = (self.second + second_time.second) - 60
else:
new_time.second = self.second + second_time.second
#define minutes add for 24 FPS
if(self.minute + second_time.minute) >= 60:
self.hour += 1
new_time.minute = (self.minute + second_time.minute) - 60
else:
new_time.minute = self.minute + second_time.minute
#define hours add for 24 FPS
if(self.hour + second_time.hour) >= 24:
new_time.hour = (self.hour + second_time.hour) - 24
else:
new_time.hour = self.hour + second_time.hour
return new_time
time1 = Time(2, 23, 21, 10)
time2 = Time(2, 21, 2, 22)
test = time1 + time2
print(time1)
如果我在“test = time1 + time2” time1 = 02:23:21:10 之前打印 time1 但是当我在 test 之后打印它时,就像上面的代码中时间 1 的值是 02:23:22:10 ...
我错过了什么?为什么 time1 的值会改变?
谢谢你的帮助
解决方案
推荐阅读
- r - 给定此属性,如何使用 R 生成正交拉丁方?
- azure - Azure 逻辑 - 网关错误
- javascript - 在 React 应用中从 babel-polyfill 切换到 core-js
- c++ - Boost 1.73 日志库回归
- java - 如何从 Settings Activity 修改 MainActivity 上的数据?
- javascript - 我需要 three.js.master 文件夹才能使用 OBJLoader2.js 吗?404 未找到
- javascript - Javascript函数和常量数组
- javascript - 如何使用Javascript将列表项移动到无序列表中的指定索引(位置)
- c - 函数原型范围的实际应用或价值
- c++ - 迭代器到列表中最后一个元素的过去