Xin chào, tôi có một cái gì đó đại khái như sau. Về cơ bản, tôi cần truy cập lớp của một phương thức thể hiện từ một trình trang trí được sử dụng dựa trên phương thức thể hiện trong định nghĩa của nó.
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
Mã nguyên trạng cung cấp:
AttributeError: 'function' object has no attribute 'im_class'
Tôi đã tìm thấy câu hỏi / câu trả lời tương tự - trình trang trí Python làm cho hàm quên rằng nó thuộc về một lớp và Nhận lớp trong trình trang trí Python - nhưng những câu hỏi này dựa trên một giải pháp lấy phiên bản tại thời điểm chạy bằng cách lấy tham số đầu tiên. Trong trường hợp của tôi, tôi sẽ gọi phương thức dựa trên thông tin thu thập được từ lớp của nó, vì vậy tôi không thể chờ một cuộc gọi đến.