python中万能的%r

from math import hypot


class Vector:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

    def __repr__(self):
        return 'Vector(%r, %r)' % (self.x, self.y)#输出结果Vector([1, False, {'key': 'val'}, (1, 2, 3)], ['2', '3', '4'])
        # return 'Vector({}, {})'.format(self.x, self.y)#输出结果Vector([1, False, {'key': 'val'}, (1, 2, 3)], ['2', '3', '4'])

    def __abs__(self):
        return hypot(self.x, self.y)

    def __bool__(self):
        return bool(abs(self))

    def __add__(self, other):
        x = self.x + other.x
        y = self.y + other.y
        return Vector(x, y)

    def __mul__(self, scalar):
        return Vector(self.x * scalar, self.y * scalar)


if __name__ == '__main__':
    v = Vector([1, False, {"key": "val"}, (1, 2, 3)], ["2", "3", "4"])
    print(v)

由此可见 %r会将原有格式保留 是我们输出重写__repr__的比较理想的选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值