python 的类里是否有一个类似于__str__的数值类型的方法?
请问python 的类里是否有一个类似于__str__的数值类型的方法,可以通过实例名称直接得到一个值,从而直接进行运算,比如在下边的代码中可以直接进行p1 + p2,而不用写p1.age + p2.age?
我知道有一个__add__方法,但是对于2+p1这样的运算会报错,不够理想。
谢谢大家。
class person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def info(self):
print "name:%s, age:%d" % (self.name, self.age)
def __str__(self):
return "%d" % self.age
def __value__(self):
return self.age
p1 = person("jack", 30)
p2 = person("tom", 29)
p1.info()
p2.info()
print p1
print p2
print p1 + p2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你再实现个
__radd__
方法,这个是处理对象在右边的情况。不够理想?那就自己写个
__add__
呗。推荐阅读:python doc
LZ想让内建方法builtins的int也具备自定义__add__的功能,但是弄了半天,运行时的int对象 add 方法是只读的。 通过 globals['__builtins__'] 替换掉int类,也没有作用。 应该要在C源码层扩展了。