Питон | tkinter: Что делает tkinter.END? - PullRequest
0 голосов
/ 03 мая 2018

Обучение Python через книгу, и tkinter.END используется в блоке кода без объяснения

import tkinter

def count(text, out_data):
    """ Update out_data with the total number of As, Ts, Cs, and Gs found in text.""" 

    data = text.get('0.0', **tkinter.END**)
    counts = {}
    for char in 'ATCG':
        counts[char] = data.count(char)
    out_data.set('Num As: {0} Num Ts: {1} Num Cs: {2} Num Gs: {3}'.format(
        counts['A'], counts['T'], counts['C'], counts['G']))
...

Я посмотрел онлайн, и я только натолкнулся на примеры, никогда не упоминая его функцию. Я попробовал help(tkinter) в оболочке и получил END = 'end', что было не очень полезно. Если требуется больше кода, просто дайте мне знать. Не хотел публиковать весь код, заставляя вас бессмысленно читать больше без причины.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Он ничего не "делает". Это константа, буквальная строка «конец». В этом контексте он представляет точку сразу после последнего введенного пользователем символа. Функция get в текстовом виджете требует двух значений: начальная позиция и конечная позиция.

Примечание: в строке text.get('0.0', tkinter.END), '0.0' недопустимо (хотя tkinter с благодарностью принимает это и обрабатывает так же, как '1.0'). Текстовые индексы имеют вид line.character . Строки начинаются с 1, символы начинаются с нуля. Итак, первый символ - '1.0', а не '0.0'.

0 голосов
/ 03 мая 2018

Это просто константа.

Библиотека Python tkinter - это оболочка для tk, поэтому вы можете обратиться к исходной документации, которую можно найти по адресу: http://www.tkdocs.com/tutorial/text.html#basics.

По вашему вопросу см. Раздел «Извлечение текста». В своем примере Python они даже не используют константу:

thetext = text.get('1.0', 'end')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...