#python
#python
Вопрос:
Довольно новичок в Python здесь, я работал с классами, пока не наткнулся на создание функции в классе, особенно со временем, которая позволяет ей возвращать целочисленное значение от 0 до 24, но не включая, указывающее ближайший час ко времени начала события.
Это код, который у меня есть до сих пор:
def get_time(self):
"""(int) Returns the integer time value"""
for self._time in range(0, 24):
return str(self._time)
Я не уверен, должен ли я заранее установить пустой список, чтобы я мог ссылаться на индекс, но, думаю, я застрял на данный момент… когда я его тестирую, это то, что он должен выводить, но это то, что выводит мой код:
- Event(My Event @ 0, True, False)
? ^
Event(My Event @ 13, True, False)
? ^^
:: __str__
Комментарии:
1. Ваш
get_time
метод не имеет смысла. Он пытается выполнить цикл, который устанавливает атрибутself._time
для каждого значения от 0 до 23, но возвращаетсяstr(self._time)
на первой итерации, поэтому вашself._time
всегда устанавливается равным нулю, и метод всегда возвращается'0'
. Что бы вы ни хотели сделать, это не способ сделать это.
Ответ №1:
Возврат в вашей функции приведет к завершению цикла for на его первой итерации, поэтому вы каждый раз возвращаете 0. Также немного вводит в заблуждение то, что в вашем комментарии указано, что функция вернет целое число, даже если оно возвращает строку. Я предполагаю, что вы где-то установили self._time и хотите вернуть час? Является ли self._time объектом datetime? Если это так, вы можете вернуть self._time.hour , поэтому ваша функция будет
def get_time(self):
"""(int) Returns the integer time value"""
return int(self._time.hour)