类实例的Python平方根

在市场

我目前正在实现一个可以处理与物理单位关联的数字数据的类。

我想实现一种计算实例平方根的方法。假定您有一个具有属性value和name的类的实例:

from math import sqrt

class Foo:
   def __init__(self, value, name)
      self.value = value
      self.name = name

   def __sqrt__(self):
      return sqrt(self.value)

我想实现一个与魔术方法类似的功能,例如add(self,other),当我调用math.sqrt()函数时将计算平方根:

A = Foo(4, "meter")
root = math.sqrt(A)

应该返回调用A. sqrt()函数。

沿

您不能不重新分配math.sqrt自定义功能。如果要允许Foo强制转换为int或者float可以在调用之前实现__int____float__强制转换math.sqrt

class Foo:
    def __init__(self, value, name)
        self.value = value
        self.name = name

    def __float__(self):
        return float(self.value)

    def __int__(self):
        return int(self.value)

A = Foo(4, "meter")
root = math.sqrt(float(A))

编辑:根据下面的评论,由于数学模块是如何实现的,因此您似乎可以math.sqrt(A)直接调用实现。我仍然宁愿是明确的而不是隐性的。Foo__float__

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章