如何修复TypeError: 'str'与'int'实例间不支持使用'<'运算符的问题
问题根因
你的Verif_1方法会为小于10的数值拼接前导零后转为字符串,而ConfigIP类型要求value存储的所有元素必须为整数类型。config组件内置的校验逻辑会将存储值与预设的整数上下限做比较,字符串和整数直接比较就会触发该类型错误。
修复方案
你不需要修改存储的数值本身来实现前导零的显示效果,所有格式化逻辑应该放在读取值展示的环节,不要修改存储层的数值类型,修复后的代码如下:
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): # 统一返回整数类型元素,符合ConfigIP的类型约束 return [int(item) for item in Valist]
如果需要展示带前导零的效果,在你需要显示该数值的位置做格式化即可,示例如下:
# 读取配置值后格式化展示,不会修改存储的原始值 iptv_config_val = config.plugins.FreeServer.Updattimeiptv.value display_text = f"{iptv_config_val[0]:02d}:{iptv_config_val[1]:02d}"
内容的提问来源于stack exchange,提问作者Fair Bird
相关产品推荐
相关产品推荐

