Rumah > pembangunan bahagian belakang > Tutorial Python > Penyelesaian kepada ralat AttributeError(\'{0!r} object tidak mempunyai atribut {1!r}\'.format(type(self).__name__, k))

Penyelesaian kepada ralat AttributeError(\'{0!r} object tidak mempunyai atribut {1!r}\'.format(type(self).__name__, k))

王林
Lepaskan: 2024-02-29 18:40:20
ke hadapan
1337 orang telah melayarinya

报错AttributeError('{0!r} object has no attribute {1!r}'.format(type(self).__name__, k))的解决

Sebab ralat

Mesej ralat ini menunjukkan bahawa dalam kod python, objek (diwakili oleh pembolehubah diri) digunakan, tetapi objek itu tidak mempunyai atribut bernama k. Ini mungkin kerana objek tidak mempunyai sifat ini ditakrifkan, atau ralat jenis dalam kod menyebabkan objek tidak daripada jenis yang dijangkakan.

Cara Membetulkan

Untuk menyelesaikan ralat ini, anda mungkin perlu melakukan satu atau lebih daripada yang berikut:

Semak kod anda untuk ralat dan pastikan objek yang dirujuk oleh pembolehubah diri mempunyai sifat bernama k.

Semak kod anda untuk ralat jenis dan pastikan objek yang dirujuk oleh pembolehubah diri adalah daripada jenis yang dijangkakan.

Jika atribut tiada, anda perlu mentakrifkan atribut ini dalam kelas

Gunakan try kecuali untuk mendapatkan ralat ini

Jika ditentukan bahawa k ialah atribut yang tidak ditakrifkan dalam kelas, sila sahkan sama ada k kesilapan ejaan.

Penyelesaian bergantung pada kod tertentu dan punca ralat.

Contoh Penggunaan

Ya, berikut ialah contoh mudah yang menunjukkan bagaimana ralat ini mungkin timbul:

class MyClass:
def __init__(self):
self.var1 = 10

obj = MyClass()

print(obj.var2)# var2 is not defined in MyClass
Salin selepas log masuk

Kod di atas mentakrifkan kelas MyClass dan mentakrifkan atribut var1 di dalamnya. Ia kemudian mencipta contoh MyClass dan cuba mencetak harta yang dipanggil var2. Oleh kerana var2 tidak ditakrifkan dalam MyClass, ralat AttributeError('MyClass' tidak mempunyai atribut 'var2') akan dinaikkan.

Ralat ini boleh diselesaikan dengan mentakrifkan atribut var2 dalam MyClass seperti:

class MyClass:
def __init__(self):
self.var1 = 10
self.var2 = 20

obj = MyClass()

print(obj.var2)# 20
Salin selepas log masuk

Anda juga boleh menggunakan try kecuali untuk menangkap ralat ini:

class MyClass:
def __init__(self):
self.var1 = 10

obj = MyClass()
try:
print(obj.var2)# var2 is not defined in MyClass
except AttributeError as e:
print("AttributeError occured:",e)
Salin selepas log masuk

Ini hanyalah contoh mudah, dalam kod sebenar, punca ralat mungkin lebih kompleks.

Atas ialah kandungan terperinci Penyelesaian kepada ralat AttributeError(\'{0!r} object tidak mempunyai atribut {1!r}\'.format(type(self).__name__, k)). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:lsjlt.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan