Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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))

王林
王林ke hadapan
2024-02-29 18:40:201201semak imbas

报错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

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

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)

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!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam