У меня есть определенные объекты, которые развиваются в рамках подпрограммы и подпрограммы.И я хочу проверить состояние этих переменных с помощью проб.
Например, давайте назовем этот класс пьяным.
class drunk (object):
def __init__(self):
self.position = 0
self.probability = 0.5
def take_a_step():
# code that will make the drunkard change its position
Затем я могу сгенерировать много пьяниц и поместить их в класс.толпа.
class crowd (object):
def __init__(self):
self.inidividuals = num.array([])
Я хотел бы создать «зондирующий» объект, который можно назначить любому из этих объектов, но у меня есть проблемы с реализацией.
class probe (object):
def __init__(self):
self.function = None
self.data = num.array([])
Я хочу назначить зонды любому пьянице, зонд извлечет любую информацию из толпы или пьяницы, которая определена в функции, находящейся в probe.function.
Но, насколько мне известно, я могу назначить зонды, помещая их в список в этих классах, и вызывать их, ссылаясь на функции в методах классов толпы и пьяницы.
Но для того, чтобы сделать это,
probe_mean = probe()
def probe_function():
#
#
#
probe_mean.function = probe_function()
Но так как я хочу сослаться на переменную в классе, функция которого будет в списке, кажется, что я должен определить функцию как
Но для того, чтобы сделать это,
probe_mean = probe()
def probe_function(probed):
return probed.position.mean()
probe_mean.function = probe_function(drunk_53)
drunk_53.probes.append(probe_mean)
У меня есть ощущение, что эти объекты должны ссылаться друг на друга, чтобы это работало, это не так, как ондолжно быть.
Я подумал, что должен быть способ справиться с этим без повторного введения в функцию drunk_53, что-то вроде super (), которое разрешит вертикальную ассоциацию.
Яне имеет опыта в ООП, поэтому я прошу наиболее подходящий способ (Pythonic, элегантный и т. д.), чтобы сделать это.Каковы ваши мнения?Какой подход вы бы выбрали?