@property как метод внешней упаковки / декорирования - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть свойство, которое я хотел бы украсить, но я хочу только украсить его, если активный файл является основным (__main__).Я попытался обработать его как метод экземпляра, но он не работает, так как свойство не имеет вызываемого состояния (как я знаю).Вот что я попробовал:

def timer(func):
    def wrapper(*args,**kwargs):
        dt1 = time()
        out = func(*args,**kwargs)
        print(func.__qualname__,'ran for',time()-dt1,'seconds\n')
        return out
    return wrapper

class mainclass():
    def __init__(self,data): self.data = data

    @property
    def asArr(self): return list(self.data)

mainclass.asArr = timer(mainclass.asArr)

Есть ли способ получить его как функцию первого класса, а затем, перехватив ее, я могу преобразовать ее обратно в свойство, связанное с классом, который будет использоваться любымслучаи?Любые альтернативные решения также приветствуются.

...