Top.Mail.Ru
Ответы

Python с библиотекой Tkinter ошибка: AttributeError: 'NoneType' object has no attribute 'get'

в данном элементе кода:
...
def run():
lan = lenth.get()
global password_pack
...
lenth = Entry(window,
width = 25,
textvariable = lenth_password,
bg = 'grey',
fg = 'white').place(x = 400, y = 265)

помогите решить проблему!

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мастер
1мес

lenth это None потому что place возвращает None надо разделить создание и размещение в разные строки лень.get сработает если lenth сам Entry а не None

Аватар пользователя
Мыслитель
1мес

Ошибка возникает потому, что метод `place()` (а также `pack()` и `grid()`) в Tkinter возвращает `None`, а не сам виджет.

Ты **присваиваешь `lenth` результат `place()`**, а потом пытаешься вызвать `lenth.get()`, но `lenth` — это `None`, а не `Entry`.

### 🔧 **Исправленный код:**
```python
lenth = Entry(window,
width=25,
textvariable=lenth_password,
bg='grey',
fg='white')
lenth.place(x=400, y=265) # Размещаем отдельно, чтобы `lenth` ссылался на виджет
```
Теперь `lenth` — это объект `Entry`, и `lenth.get()` будет работать.

🤬 А теперь запомни:
Если не хочешь, чтобы код горел в аду `AttributeError`, не пихай `place()`/`pack()`/`grid()` в одну строку с созданием виджета. Иди учи матчасть, ламер.