#python #python-3.x #types #iterable
#python #python-3.x #типы #итеративный
Вопрос:
Как создать метод, подобный следующему, с итеративным вводом конкретного объекта в python:
В Java мы можем создать его, как показано ниже:
abstract public ArrayList<Device> returnDevices(ArrayList<Object> Device){
...
}
В python я хочу создать модель, подобную следующей:
class OptionModel:
def __init__(
self,
option: str = None,
) -> None:
self.__option = option
@property
def option(self):
return self.__option
@option.setter
def option(self, value):
self.__option = value
И в другом классе я хочу получить список объектов OptionModel, как показано ниже:
class Command:
def __init__(
self,
options: List[OptionModel] = None,
) -> None:
self.__options = options
@property
def options(self) -> List[OptionModel]:
return self.__options
@options.setter
def options(self, value: List[OptionModel]):
self.__options = value
И когда для цикла на Options_ получаем OptionModel в моей IDE:
def print_summery(self):
for option in self.options:
print(" {} {}tt{}".format(option.option, option.alias, option.brief))
Комментарии:
1. Означает ли «изменяемый» объект любого типа? Вы можете просто указать
-> List
, не указывая тип содержимого. Или в python есть общийobject
тип. Кроме того, это не Java. установка сеттеров и геттеров для всего не является частью стиля Python.2. В чем ваш вопрос? Похоже, что ваш код уже выполняет то, что вы описываете — единственная ошибка, которую я вижу, заключается в том, что ваш
Command
класс должен инициализироватьсяself.__options
options or []
, поскольку похоже, что другие ваши функции ожидают, что это будет список. Использование «строгой необязательной» проверкиmypy
приведет к таким вещам!