Прежде всего, извините за отсутствие использования ООП, я просто решил избежать сложности для такой небольшой программы. Так вот моя программа (в основном, это въездной виджет, который позволяет текст, который состоит только из целых чисел, максимальная длина 5):Аналогичные функции проверки не работают
from tkinter import *
root = Tk()
root.title("Entry Validation")
root.geometry("300x100")
def validation_function(text):
if len(text) <= 5:
try:
text = int(text)
return True
except:
return False
else:
return False
vcmd = root.register(validation_function)
entry = Entry(root, validate='key', validatecommand=(vcmd, "%P"))
entry.pack()
Он работает нормально. Но когда я делаю небольшое изменение в теле функции проверки, он не работает:
def validation_function(text):
try:
text = int(text)
if len(text) <= 5:
return True
else:
return False
except:
return False
Я чувствую, что проблема здесь:
except:
return False
Вероятно, максимальная длина рабочей части не хорошо сочетаются с try-except ... Однако:
def validation_function(text):
try:
if len(text) <= 5:
return True
else:
return False
except:
return False
работает правильно. Но есть только часть максимальной длины, я также хочу, чтобы она допускала только целые числа. Я сделал это в первом примере, но мой вопрос: почему он не работает, когда я меняю места максимальной части с единственной целой частью?
Пожалуйста, не downvote мои вопросы без объяснения причин! Это ограничивает мои привилегии. Я здесь просто новый, ребята, давай! –