Форум сайта python.su
py.user.nextЗаписал это себе в золотую рамочку как памятку! Спасибо!
Список - это объект, который меняется. Кортеж - это объект, который не меняется. Множество - это объект, который меняется. Число - это объект, который не меняется. Словарь - это объект, который меняется. Строка - это объект который не меняется.
Офлайн
И еще я методом научного тыка интересные вещи узнал!
Мало того, что я забыл, что “IntVar()” работает только внутри “оболочки” “tkinter”, так я выяснил еще, что “IntVar()”, оказывается, по умолчанию является глобальной переменной. Или это не переменная глобальная, а методы “.get()” и “.set()” такие крутые, что могут изнутри тела функции любую переменную извне достать?
А еще я где-то читал, что без инструкции “root.mainloop()” окно не отобразится… Ага… Нифига подобного! Отображается!
from tkinter import * root = Tk() a = IntVar() a.set(10) def check(): print(a.get()) check()
Отредактировано Olezhka (Янв. 6, 2023 17:33:39)
Офлайн
Olezhkaдля чего нужен метод mainloop()?
А еще я где-то читал, что без инструкции “root.mainloop()” окно не отобразится…
Офлайн
xam1816Для зацикливания перехвата прерываний от обработчиков событий виджетов окна.
для чего нужен метод mainloop()?
Офлайн
Olezhkaэто замудреная фраза, в разделе для новичков, можешь простым примером объяснить хотя бы приблизительно, что делает этот метод
Для зацикливания перехвата прерываний от обработчиков событий виджетов окна.
Olezhkaу меня не отображается без него…Ну ладно для чего-то ведь он нужен, прерывания, события какие-то
А еще я где-то читал, что без инструкции “root.mainloop()” окно не отобразится… Ага… Нифига подобного! Отображается!
import tkinter as tk root = tk.Tk() root.mainloop() tk.Label(text='text').pack() tk.Button(text='btn').pack()
Офлайн
OlezhkaКогда запускается операция присваивания и имя new привязывается, там уже всё создано.
Потому что ты сам же ее и создаешь! )) “new = ”
>>> s = 'abc' >>> s.replace('a', 'x') 'xbc' >>> s 'abc' >>>
OlezhkaЭто разные структуры данных. С чего они должны быть одинаковыми? Строка, например, не может хранить любые объекты, только строки может хранить (подстроки), а список может хранить любые объекты - строки, списки, функции и так далее.
А метод “.append()” возвращает дырку от бублика , но при этом меняет ИСХОДНЫЙ список.
>>> lst = ['a', 1, {'name': 'value'}, [1, 2, 3], lambda x: x * 2] >>> lst[-1](4) 8 >>> lst ['a', 1, {'name': 'value'}, [1, 2, 3], <function <lambda> at 0x7f3609508ea0>] >>>
OlezhkaЗачем? Это уже всё записано в документации к питону.
Записал это себе в золотую рамочку как памятку!
OlezhkaТак имя привязывается к адресу объекта, а адрес меняется. У каждой строки свой адрес.
Вот только курьез какой-то выходит… Я, конечно, сейчас просто к словам придираюсь, но… Ты вот посмотри. Переменная… Само ее название говорит о том, что она МОЖЕТ меняться, в отличие от константы!.. Она изменчива!
string = 'a' string = 'b' string = string + 'c'
OlezhkaЭто объект такой же, как список. А метод set() - это такой же метод, как у списка метод append(). Поэтому её не надо видеть глобально, достаточно её просто где-то видеть и задействовать её метод, который внутри неё и сохранит всё её же методом.
так я выяснил еще, что “IntVar()”, оказывается, по умолчанию является глобальной переменной. Или это не переменная глобальная, а методы “.get()” и “.set()” такие крутые, что могут изнутри тела функции любую переменную извне достать?
OlezhkaА на нажатие кнопок на клавиатуре оно будет реагировать? Привяжи кнопку клавиатуры к окну и запусти с главным циклом и без главного цикла.
А еще я где-то читал, что без инструкции “root.mainloop()” окно не отобразится
Отредактировано py.user.next (Янв. 6, 2023 22:16:14)
Офлайн
xam1816Я не понял Ты прикалываешься надо мной что ли?
у меня не отображается без него…Ну ладно для чего-то ведь он нужен, прерывания, события какие-то
помоги пожалуйста, почему у меня кнопка с лейблом не отображается?
Офлайн
Olezhka4555443.png Вот о чем я говорю. Я не про обработку прерываний говорю.
А на нажатие кнопок на клавиатуре оно будет реагировать? Привяжи кнопку клавиатуры к окну и запусти с главным циклом и без главного цикла.
Отредактировано Olezhka (Янв. 6, 2023 22:20:31)
Прикреплённый файлы:
4555443.png (195,7 KБ)
Офлайн
Olezhkaпочему ты не развиваешься???Тебе говорят не используй ее, это шляпа шляпная. Установи PyCharm например, он специально под python создан. IDLE сделан на tkinter и mainloop() запущен уже с программой
у меня в “IDLE” без “root.mainloop()” отображается окно!
Офлайн
py.user.next
Вот если бы ты присвоить туда больше не мог после первого раза, то это была бы константа.
CONST = '1' CONST += '1' print(CONST)
CONST = ['1'] CONST.append('1') print(CONST)
Отредактировано Olezhka (Янв. 6, 2023 23:01:51)
Офлайн