问题描述
python 内置的 coerce 函数有哪些常见用途?如果我不知道数值 type ,我可以看到应用它"noreferrer">根据文档,但是否存在其他常见用法?我猜想在执行算术计算时也会调用 coerce(),例如 x = 1.0 2.它是一个内置函数,所以大概它有一些潜在的常见用法?
what are common uses for python's built-in coerce function? i can see applying it if i do not know the type of a numeric value as per the documentation, but do other common usages exist? i would guess that coerce() is also called when performing arithmetic computations, e.g. x = 1.0 2. it's a built-in function, so presumably it has some potential common usage?
推荐答案
它是 早期的python,它基本上使一个数字元组成为相同的底层数字类型,例如
its a left over from early python, it basically makes a tuple of numbers to be the same underlying number type e.g.
>>> type(10)>>> type(10.0101010) >>> nums = coerce(10, 10.001010) >>> type(nums[0]) >>> type(nums[1])
这也是为了让对象在旧类中表现得像数字
(在这里使用它的一个不好的例子是......)
it is also to allow objects to act like numbers with old classes
(a bad example of its usage here would be ...)
>>> class bad: ... """ dont do this, even if coerce was a good idea this simply ... makes itself int ignoring type of other ! """ ... def __init__(self, s): ... self.s = s ... def __coerce__(self, other): ... return (other, int(self.s)) ... >>> coerce(10, bad("102")) (102, 10)