Tidak, tiada cara dalam Python untuk menemui nama objek. Sebabnya ialah objek sebenarnya tidak mempunyai nama.
Katakan kita mempunyai kod berikut. Di sini kita tidak dapat mencari nama contoh sebenar. Oleh kerana kedua-dua ob1 dan ob2 terikat pada nilai yang sama, kita tidak boleh membuat kesimpulan sama ada nama contoh bagi ob1 atau ob2 adalah sama −
Terjemahan bahasa Cina bagi# Creating a Demo Class class Demo: pass Example = Demo ob1 = Example() ob2 = ob1 print(ob2) print(ob1)
<__main__.Demo object at 0x00000250BA6C5390> <__main__.Demo object at 0x00000250BA6C5390>
Seperti yang kita lihat di atas, kita tidak boleh memaparkan nama sebenar objek tersebut. Walau bagaimanapun, kami boleh memaparkan kejadian dan kiraan, seperti yang ditunjukkan dalam contoh di bawah.
Dalam contoh ini, kami mencipta kelas Demo dengan empat kejadian -
ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo()
Kami mengulangi objek dalam ingatan −
for ob in gc.get_objects():
Menggunakan fungsi isinstance(), setiap objek akan disemak sama ada ia adalah tika kelas Demo. Mari lihat contoh lengkap -
import gc # Create a Class class Demo: pass # Four objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Display all instances of a given class for ob in gc.get_objects(): if isinstance(ob, Demo): print(ob)
<__main__.Demo object at 0x7f18e74fe4c0> <__main__.Demo object at 0x7f18e7409d90> <__main__.Demo object at 0x7f18e7463370> <__main__.Demo object at 0x7f18e7463400>
Dalam contoh ini kami akan mengira kejadian dan memaparkan −
import gc # Create a Class class Demo(object): pass # Creating 4 objects ob1 = Demo() ob2 = Demo() ob3 = Demo() ob4 = Demo() # Calculating and displaying the count of instances res = sum(1 for k in gc.get_referrers(Demo) if k.__class__ is Demo) print("Count the instances = ",res)
Output
Count the instances = 4
Atas ialah kandungan terperinci Bagaimanakah kod saya menemui nama objek dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!