Saya mencoba mencetak nama instance suatu kelas. Dalam contoh ini, ini adalah pengatur waktu yang mencetak berapa lama berbagai bagian kode saya yang tumpang tindih berjalan:
class timerstart:
def __init__(self):
# Sets some variables with system time
def stop(self):
# Calculates current total time
print(*instance name*, 'total time is ...')
Jadi ketika saya menyebutnya dalam kode saya akan terlihat seperti:
allcode=timerstart()
# some code
subcode=timerstart()
# some code
subcode.stop()
# some code
allcode.stop()
Yang akan menghasilkan:
subcode total time...
allcode total time...
Saya tahu saya dapat menginisialisasi fungsi dengan namanya: allcode=timerstart(name='allcode')
yang mengganggu.
Saya juga mengalami masalah dengan penelusuran balik menggunakan: inspect.currentframe().f_back.f_locals.items()
Apakah ada cara untuk mencetak nama instance, seperti print(self.selfname)
atau apalah?
timerstart
sebagai pengelola konteks, sehingga Anda dapat menuliswith timerstart("allcode"): ...
. Badan pernyataanwith
akan membatasi blok yang akan diberi waktu, bukan diakhiri dengan panggilan eksplisit kestop
. - person chepner   schedule 04.12.2019