требуется создать объект, состоящий из нескольких полей:
а) w - список чисел
б) f - некоторая функция (например, синус)
…
Хитрость в том, что объект может быть инициализирован несколькими разными способами:
1) В конструктор передается функция f и число - длина списка, в результате генерируется объект, у которого список w заполнен нулями. Это я мог бы реализовать как-то так:
class A(object):
__init__(self, n, f):
self.f = f
self.w = [0.0]*n
...
class A(object):
__init__(self, w, f):
self.f = f
self.w = w
...
class A(object):
__init__(self, s):
data = eval(s)
self.f = data['f']
self.w = data['w']
...
a1 = A(10,cos())
a2 = A([1,1,2,0],sin())
a3 = A("{'f': cos(), 'w': [0,0,1]}")