#python #function #tkinter
#python #функция #tkinter
Вопрос:
Я использую Python 3.4 с Tkinter. Я пытаюсь заставить StringVar()
метку постоянно обновляться из скрипта и обновлять экран новыми данными (я собираюсь начать со времени). Но сначала я просто пытаюсь получить метку для отображения выходных данных функции:
import time
from datetime import datetime
def localScript():
return str(datetime.now().time())
Я присваиваю свой StringVar()
тип возвращаемого значения этой функции как таковой:
textVar1 = StringVar()
textVar1.set(str(localScript))
И это мой вывод: <function localScript at 0x02325f60>
Я новичок в Python, поэтому я не совсем понимаю его версию scope. localScript
определяется глобально, тогда как назначение выполняется внутри класса (в том же .py
файле, конечно). Возможно, это проблема области видимости.
Ответ №1:
В Python вам нужно поместить (...)
после имени функции, чтобы вызвать ее:
textVar1.set(localScript())
Смотрите демонстрацию ниже:
>>> def func():
... return 'hi'
...
>>> func # Below is a string representation of the function object itself
<function func at 0x01B4EBB0>
>>> func() # The () calls func. Below is the return value of the function
'hi'
>>>
Вот ссылка на определение / вызов функций в Python.
Комментарии:
1. Так что тогда это было просто returnign
__repr__
функции. Я идиот