#Ex 7.11 from "A primer on..."; Implement
#special methods in a class
import numpy as np
from math import pi
class F:
def __init__(self,a,w):
self.a = a
self.w = w
def __call__(self,x):
return np.exp(-self.a*x)*np.sin(self.w*x)
def __str__(self):
return "exp(-a*x)*sin(w*x)"
f = F(a=1.0, w=0.1)
print(f(x=pi))
f.a = 2
print(f(pi))
print(f)
"""
Terminal> python F2.py
0.01335383513703555
0.0005770715401197441
exp(-a*x)*sin(w*x)
"""