Saya memiliki sesuatu yang kira-kira seperti berikut ini. Pada dasarnya saya perlu mengakses kelas metode contoh dari dekorator yang digunakan pada metode contoh dalam definisinya.
def decorator(view):
# do something that requires view's class
print view.im_class
return view
class ModelA(object):
@decorator
def a_method(self):
# do some stuff
pass
Kode apa adanya memberikan:
AttributeError: objek 'function' tidak memiliki atribut 'im_class'
Saya menemukan pertanyaan / jawaban yang serupa - Python decorator membuat fungsi lupa bahwa itu milik kelas dan Dapatkan kelas dalam dekorator Python - tetapi ini bergantung pada solusi yang mengambil contoh pada saat run-time dengan mengambil parameter pertama. Dalam kasus saya, saya akan memanggil metode berdasarkan informasi yang dikumpulkan dari kelasnya, jadi saya tidak sabar menunggu panggilan masuk.