我可以告诉另一个包中的某个函数如何使用用户定义的类对象进行操作吗?
例如,我有一个课程:
class Complex:
def __init__(self, real, imag):
self.real = real
self.imag = imag
// ...
z = Complex(3, 5)
我想以某种方式覆盖math.sin()函数来处理我的复数,例如:
z1 = math.sin(z)
这应根据以下公式创建新的复数: sin(a + bi)= sin(a)* cosh(b)+ icos(a)* sinh(b)
致电
print(z1)
应打印
/// 10.472508533940392 - 73.46062169567367i
有办法吗?
答案 0 :(得分:1)
我建议您为自己的班级编写自己的方法。 否则,您可以使用称为“猴子修补”的东西。
import math
def sin(x):
do_stuff...
math.sin = sin
但是我仍然认为,为您的类编写一个新函数是一个更好的主意