gpt4 book ai didi

python - 用于在 python 中打印 int 的钩子(Hook)

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:12 25 4
gpt4 key购买 nike

我有一个包含整数的嵌套结构,并希望在对该结构执行 printpprint 时用科学记数法显示它们。
我的想法是为 int 添加创建我的重载类,打印时它会做我需要的。但是我无法获得 int 表示的钩子(Hook):

#!/usr/bin/python

class A(int):
def __str__(self, *args):
import ipdb; ipdb.set_trace()

def __unicode__(self, *args):
import ipbd; ipdb.set_trace()

def __repr__(self, *args):
import ipbd; ipdb.set_trace()

def __int__(self, *args):
import ipbd; ipdb.set_trace()

a = A()
a+=2
print(a)

在执行 print(a) 时没有调用任何断点

编辑 2:这段代码做了我想要的:

#!/usr/bin/python
from collections import defaultdict
from pprint import pprint

class A(int):
def __init__(self):
self._value = 0


# def __add__(self, other):
# self._value += other
# return self

def __iadd__(self, other):
self._value += other
return self

def __str__(self):
return "{:,}".format(self._value)

def __repr__(self):
return "{:,}".format(self._value)

a = defaultdict(lambda: defaultdict(A))
a[0][1]+=123456789
a[0][2]+=100000
pprint(a)

最佳答案

a+=2之后,a变量被重新赋值,变成了int

之后发生的一切都与你的A类无关。

关于python - 用于在 python 中打印 int 的钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34722589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com