【发布时间】:2021-03-01 18:28:28
【问题描述】:
我有一个小问题,因为每当我在 try/except 部分运行代码 print(obj) 时,它都会引发异常。我用调试工具跟踪它,它直接在 str 方法中跳转,但我编写了 str 方法只是为了测试。通常我认为它会跳转到普通类调用的 repr 方法中。 代码在 str() 方法的返回命令中中断。 我只是想更改 time.time_struct 类的输出,因为我需要字符串和属性表示。 打印命令仅用于显示结果,init 语句中的块有效,但在 try/Except 块中则不起作用。 有人有想法吗?
import time
class timeSelf():
def __init__(self,str):
self.obj = time.strptime(str, "%H:%M")
print(self.obj.tm_hour)
print(type(self.obj))
def __repr__(self):
return "" + self.obj.tm_hour + ":" + self.obj.tm_min
def __str__(self):
return "" + self.obj.tm_hour + ":" + self.obj.tm_min
if __name__ == "__main__":
str= "16:54"
try:
obj = timeSelf(str)
print(obj)
print(type(obj))
print(type(obj.tm_hour))
except Exception:
print("stuff happened")
pass
【问题讨论】:
-
print调用str,而不是repr。 -
如果您的代码引发异常,如果您不知道是什么原因导致的,请不要忽略它。
标签: python string class call repr