我希望在Python中定义一个类,它的行为类似于一个函数,并具有附加属性。特别地,它应无缝地应用于一个变量。
让我们试着用一个数学例子来解释一下。假设我对正弦函数非常感兴趣,但也对它们的“频率”感兴趣。函数 x -> sin(omega x) 有属性“frequency”,即 omega 的值。它也可以应用于一个浮点数 x。
我可以这样写:
让我们试着用一个数学例子来解释一下。假设我对正弦函数非常感兴趣,但也对它们的“频率”感兴趣。函数 x -> sin(omega x) 有属性“frequency”,即 omega 的值。它也可以应用于一个浮点数 x。
我可以这样写:
from numpy import sin, pi
class SinFunc:
def __init__(self, omega):
self.frequency = omega
def apply_to(self, x):
return sin(self.frequency * x)
我可以用正弦函数进行实验:
MySinFunc = SinFunc(3)
print(MySinFunc.frequency)
print(MySinFunc.apply_to(pi))
# output
# 3
# 0 (almost!)
我希望能够直接编写代码MySinFunc(pi)
,并且仍然定义了frequency属性。
如何实现这一点?谢谢!