#python
Вопрос:
У меня есть эти коды
config.plugins.FreeServer.Updattimeiptv = ConfigIP(default=[0, 0, 0, 0], auto_jump=True)
def __init__(self):
config.plugins.FreeServer.Updattimeiptv.value = self.Verif_1(config.plugins.FreeServer.Updattimeiptv.value)
def Verif_1(self, Valist):
if int(Valist[0]) < 10:
if int(Valist[1]) < 10:
Valist = ['0' str(Valist[0]), '0' str(Valist[1])]
else:
Valist = ['0' str(Valist[0]), int(Valist[1])]
elif int(Valist[1]) < 10:
Valist = [int(Valist[0]), '0' str(Valist[1])]
else:
Valist = [int(Valist[0]), int(Valist[1])]
return Valist
Если я хочу ввести новые числа, я получаю ошибку
2021-11-02 13:00:48 0300 [-] File "/usr/lib/enigma2/python/Components/config.py", line 949, in validate
2021-11-02 13:00:48 0300 [-] if self._value[num] < self.limits[num][0]:
2021-11-02 13:00:48 0300 [-] TypeError: '<' not supported between instances of 'str' and 'int'
Файл (/usr/lib/enigma2/python/Components/config.py ) это стандартный файл, я не могу изменить его из исходного кода.
https://github.com/openatv/enigma2/blob/7.0/lib/python/Components/config.py#L949
Проблема не из config.py . Это из моих кодов, приведенных выше.
Комментарии:
1. Выглядит очень подозрительно, что
Valist
иногда это список из двух целых чисел, иногда список из двух строк, а иногда список с одной строкой и одним целым числом. Я бы ожидал, что код библиотеки будет ожидать элементы одного и того же типа и, вероятно, только одного определенного типа.2. Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Как написано в настоящее время, трудно точно сказать, о чем вы спрашиваете.
Ответ №1:
Это говорит вам, что вы не можете сравнить a string
и an integer
. Один из них — string, поэтому попробуйте
int(self._value[num])
или
int(self.limits[num][0])
Один из них должен работать
Комментарии:
1. Как я уже сказал, я не могу изменить исходный файл (config.py ) . Мне нужно исправить только мой код.