Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Kod Tkinter Saya Melemparkan Ralat 'AttributeError: NoneType object has no attribute'?

Mengapa Kod Tkinter Saya Melemparkan Ralat 'AttributeError: NoneType object has no attribute'?

Patricia Arquette
Lepaskan: 2024-12-31 14:11:10
asal
618 orang telah melayarinya

Why Does My Tkinter Code Throw an

Memahami "AttributeError: NoneType object has no attribute" dalam Tkinter

Dalam Tkinter, ralat biasa yang dihadapi ialah "AttributeError: NoneType object has no attribute." Untuk memahami ralat ini, kita mesti memahami gelagat fungsi grid, pek dan tempat yang digunakan untuk reka letak widget.

Sumber Nilai Tiada

Ralat berlaku apabila anda cuba mengakses atribut widget yang belum dimulakan atau dibentangkan dengan betul. Fungsi grid, pek dan letak widget Tkinter, termasuk Entri, kembalikan Tiada. Apabila anda melaksanakan kaedah pada widget, hasil ungkapan ditentukan oleh nilai pulangan kaedah tersebut.

Sebagai contoh, dalam coretan kod yang disediakan:

entryBox = Entry(root, width=60).grid(row=2, column=1, sticky=W)
Salin selepas log masuk

Kod mencipta widget Kemasukan dan cuba menetapkan susun aturnya menggunakan kaedah grid. Walau bagaimanapun, memandangkan grid mengembalikan Tiada, entryBox berkesan menjadi Tiada. Akibatnya, apabila anda cuba mengakses atribut get()nya kemudian dalam kod:

print(entryBox.get())
Salin selepas log masuk

Anda akan menghadapi ralat kerana Tiada yang tidak mempunyai atribut get().

Penyelesaian

Untuk menyelesaikan isu ini, anda harus memisahkan penciptaan dan reka letak widget kepada dua baris berbeza:

entryBox = Entry(root, width=60)
entryBox.grid(row=2, column=1, sticky=W)
Salin selepas log masuk

Ini memastikan bahawa Entri widget dimulakan dengan betul dan rujukan disimpan dengan betul dalam entryBox, membolehkan anda mengakses atributnya tanpa menemui ralat "NoneType object has no attribute".

Atas ialah kandungan terperinci Mengapa Kod Tkinter Saya Melemparkan Ralat 'AttributeError: NoneType object has no attribute'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan