У меня есть список с измерениями, например:«список» объект не имеет атрибута «метод»
[[Measurements(100, 0.3)],
[Measurements(33, 0.5)]]
Тогда у меня есть список с некоторыми критериями, в котором содержится список измерений:
[Criteria(999, [[Measurements(100, 0.3)],
[Measurements(33, 0.5)]])],
[Criteria(999, [[Measurements(150, 0.3)],
[Measurements(35, 0.5)]])]
Наконец, я хочу поставить выше список в качестве входных данных и выполнить код:
class Measurements():
def __init__(self, value, other):
self.value = value
self.other = other
class Criteria():
def __init__(self, new_value, measurements):
self.new_value = new_value
self.measurements = measurements
def method(self):
# Here, I am iterating through all measurements
# and replace the value according to criteria
for idx, x in enumerate(self.measurements):
if (self.measurements[idx].value > 20 and
self.measurements[idx].value < 110):
self.measurements[idx].value = self.new_value
return self.measurements
class Evaluate():
def __init__(self, criteria):
self.criteria = criteria
def execute(self):
criteria = self.criteria
# Here, I am iterating through all criteria
# and call the method from criteria
for i, c in enumerate(criteria):
c.method()
return c.measurements
def main():
criteria = [
[Criteria(999, [[Measurements(100, 0.3)],
[Measurements(33, 0.5)]])],
[Criteria(999, [[Measurements(150, 0.3)],
[Measurements(35, 0.5)]])]
]
obs = (Evaluate(criteria).execute())
if __name__ == "__main__":
main()
и я получаю c.method() AttributeError: 'list' object has no attribute 'method'
Я хочу, чтобы мои результаты будут новые исправленные измерениями, так:
[[Measurements(999, 0.3)],
[Measurements(999, 0.5)]],
[Measurements(150, 0.3)],
[Measurements(999, 0.5)]]
Почему вы вложенные списки? 'c' is' [Criteria (999, ...)] ', список с одним элементом в нем, * не *' Критерии (999, ...) '. –
У меня есть вложенные списки, потому что у меня будет много критериев, которые я хочу оценить. – George
Это не требует * вложенных * списков. –