Python periksa apakah atribut objek ada

Setiap kelas memiliki metode dan properti yang bisa disebut atribut. Sebuah objek dapat mengambil atribut dari sebuah kelas, dan setiap objek juga dapat memiliki atributnya. Mengetahui atribut apa yang dimiliki suatu objek, itu perlu

Memeriksa atribut dalam suatu objek secara manual dalam potongan kode yang besar tidak dimungkinkan. Artikel ini akan menunjukkan berbagai cara untuk memeriksa atribut suatu objek

Periksa Atribut Menggunakan Metode class Cake: best_cake = "Choco Lava" best_flavor = "Vanilla" cost = 2500 cake_object = Cake() print(hasattr(Cake, 'best_cake')) 1 dengan Python

Fungsi

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1 memeriksa objek apakah objek tersebut memiliki atribut tertentu atau tidak. Jika fungsi menemukan atribut, ia mengembalikan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
3;

Sintaksis

hasattr(object_name, attribute_name)
_

Ada dua parameter untuk fungsi ini - nama

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
5 dan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
6, yang ingin kita periksa. Fungsi memberikan output sebagai Boolean
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
3 atau
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
4 tergantung pada apakah ia menemukan atribut atau tidak

Katakanlah kita memiliki kelas yang disebut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
_9. Kami mendefinisikan tiga atribut di dalam kelas ini -
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
0,
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
1, dan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
2. Kemudian, kita membuat
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
_3 sebagai objek kelas ini

Sekarang, untuk memeriksa apakah objek ini memiliki atribut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
0, kami menggunakan metode
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1. Berikan nama kelas dan atribut ini sebagai argumen dalam fungsi ini

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))

Keluaran

Karena

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
0 atribut milik objek,
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
3, kita mendapatkan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
8 sebagai output

Sekarang lihat apa yang akan terjadi jika kita memberikan

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
9 sebagai nama atribut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))

Keluaran

Karena atribut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
9 tidak ada, kita mendapatkan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
if hasattr(Cake, 'quantity'):
    print(Cake.quantity)
else:
    print("Whoops, no such attribute exists!")
1 sebagai output

Gunakan Fungsi class Cake: best_cake = "Choco Lava" best_flavor = "Vanilla" cost = 2500 cake_object = Cake() print(hasattr(Cake, 'best_cake')) 1 Dengan Blok class Cake: best_cake = "Choco Lava" best_flavor = "Vanilla" cost = 2500 cake_object = Cake() if hasattr(Cake, 'quantity'): print(Cake.quantity) else: print("Whoops, no such attribute exists!") 3 dengan Python

Satu lagi cara untuk memanfaatkan fungsi

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
_1 adalah dengan menggunakannya dengan blok
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
if hasattr(Cake, 'quantity'):
    print(Cake.quantity)
else:
    print("Whoops, no such attribute exists!")
5. Fungsi
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1 mengembalikan
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
3 saat atribut ada

Jadi, blok

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
if hasattr(Cake, 'quantity'):
    print(Cake.quantity)
else:
    print("Whoops, no such attribute exists!")
8 mengeksekusi dan mencetak nilai atribut. Tetapi jika atribut tidak ada, maka nilai yang dikembalikan adalah
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
4, dan blok
Whoops, no such attribute exists!
0 dijalankan

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
if hasattr(Cake, 'quantity'):
    print(Cake.quantity)
else:
    print("Whoops, no such attribute exists!")

Keluaran

Whoops, no such attribute exists!

Kami mencari atribut di dalam blok ________23______8. Karena atribut tidak ada, fungsi mengembalikan

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
4 dan memasuki blok
Whoops, no such attribute exists!
0. Di dalam blok
Whoops, no such attribute exists!
_0, kita menentukan pernyataan print sederhana yang dicetak sebagai output

Periksa Atribut Menggunakan Fungsi Whoops, no such attribute exists! 5 dengan Python

Fungsi

Whoops, no such attribute exists!
5 mengembalikan nilai default saat atribut tidak ada. Fungsi
Whoops, no such attribute exists!
5 berfungsi seperti yang sebelumnya

Sintaksis

getattr(object_name, attribute_name, default_value)

Fungsi

Whoops, no such attribute exists!
_5 membutuhkan tiga argumen - objek, atribut, dan nilai default untuk kasus ketika atribut tidak ada

Misalnya, kita harus menemukan atribut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
_9 untuk objek
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
3. Tanpa menentukan argumen default, mari gunakan fungsi
Whoops, no such attribute exists!
5

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(getattr(Cake, 'quantity'))

Keluaran

AttributeError: type object 'Cake' has no attribute 'quantity'

Fungsi

Whoops, no such attribute exists!
_5 melempar pengecualian di sini

Sekarang, mari kita tentukan argumen default yang harus dicetak saat atribut tidak ada. Argumen default ini bisa berupa pesan sederhana

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(getattr(Cake, 'quantity', 'Attribute not found'))

Keluaran

Kami mendapatkan pesan dari argumen default alih-alih pengecualian atau kesalahan apa pun

Gunakan getattr(object_name, attribute_name, default_value) 3 Fungsi Dengan getattr(object_name, attribute_name, default_value) 4 Blokir

Ada cara lain untuk menggunakan fungsi

Whoops, no such attribute exists!
5. Menggunakan blok
getattr(object_name, attribute_name, default_value)
6 untuk memeriksa keberadaan atribut. Idenya adalah untuk memasukkan fungsi
Whoops, no such attribute exists!
_5 di dalam blok
getattr(object_name, attribute_name, default_value)
8

Jika atributnya ada, kami akan mencetak nilainya. Jika tidak,

getattr(object_name, attribute_name, default_value)
_9 akan dilempar. Kami dapat menangani pengecualian ini di blok
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(getattr(Cake, 'quantity'))
_0 dan mencetak pesan kesalahan menggunakan pernyataan cetak

Kami mencari atribut

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'quantity'))
_9 di dalam blok
getattr(object_name, attribute_name, default_value)
8 dalam contoh ini. Kami tidak menentukan argumen default di dalam fungsi
Whoops, no such attribute exists!
5

Itu karena kami menangani kesalahan di dalam blok

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(getattr(Cake, 'quantity'))
4

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
try:
    print(getattr(Cake, 'quantity'))
except AttributeError:
    print("Whoops, this attribute is not present!")

Keluaran

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
0

Kita tidak dapat menggunakan fungsi

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1 dengan blok
getattr(object_name, attribute_name, default_value)
6 seperti fungsi
Whoops, no such attribute exists!
5. Ini karena fungsi
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
_1 mengembalikan nilai Boolean dan bukan pengecualian

untuk meringkas

Kami membahas menemukan jika atribut hadir dalam objek dengan Python. Kami menggunakan dua fungsi -

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1 dan
Whoops, no such attribute exists!
5 untuk mencapai ini

Kami belajar menggabungkan fungsi

class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
print(hasattr(Cake, 'best_cake'))
1 dengan blok
class Cake:
    best_cake = "Choco Lava"
    best_flavor = "Vanilla"
    cost = 2500
    
cake_object = Cake()
if hasattr(Cake, 'quantity'):
    print(Cake.quantity)
else:
    print("Whoops, no such attribute exists!")
5 dan fungsi
Whoops, no such attribute exists!
5 dengan blok
AttributeError: type object 'Cake' has no attribute 'quantity'
4

Bagaimana cara memeriksa apakah atribut ada di objek Python?

Kita dapat menggunakan fungsi hasattr() untuk mengetahui apakah objek python obj memiliki atribut atau properti tertentu. hasattr(obj, 'atribut'). Konvensi dalam python adalah, jika properti kemungkinan ada di sana, panggil saja dan tangkap dengan blok coba/kecuali.

Bagaimana Anda menampilkan atribut objek dengan Python?

Atribut kelas juga dapat diakses menggunakan metode dan fungsi bawaan berikut. .
getattr() – Fungsi ini digunakan untuk mengakses atribut objek
hasattr() – Fungsi ini digunakan untuk memeriksa apakah atribut ada atau tidak
setattr() – Fungsi ini digunakan untuk mengatur atribut

Bagaimana Anda memeriksa apakah suatu objek memiliki kunci di Python?

Cara memeriksa apakah kunci ada di kamus Python .
has_key. Metode has_key mengembalikan true jika kunci yang diberikan tersedia di kamus; . Sintaksis. .
jika - dalam pernyataan. Pendekatan ini menggunakan pernyataan if - in untuk memeriksa apakah ada atau tidak kunci yang diberikan dalam kamus. Sintaksis

Bagaimana Anda memeriksa atribut kelas dengan Python?

Menggunakan Fungsi dir() bawaan .