Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python @属性作为外部包装/装饰的方法_Python_Python 3.x_Oop_Properties - Fatal编程技术网

Python @属性作为外部包装/装饰的方法

Python @属性作为外部包装/装饰的方法,python,python-3.x,oop,properties,Python,Python 3.x,Oop,Properties,我有一个属性,我想装饰,但我只想装饰它,如果活动文件是主文件(_main__;)。我曾尝试将其作为实例方法处理,但由于属性没有可调用状态(据我所知),因此无法工作。这就是我尝试过的: def定时器(func): def包装(*args,**kwargs): dt1=时间() out=func(*args,**kwargs) 打印(func.\uuuu qualname\uuuuu,'ran for',time()-dt1,'seconds\n') 返回 返回包装器 类mainclass(): d

我有一个属性,我想装饰,但我只想装饰它,如果活动文件是主文件(_main__;)。我曾尝试将其作为实例方法处理,但由于属性没有可调用状态(据我所知),因此无法工作。这就是我尝试过的:

def定时器(func):
def包装(*args,**kwargs):
dt1=时间()
out=func(*args,**kwargs)
打印(func.\uuuu qualname\uuuuu,'ran for',time()-dt1,'seconds\n')
返回
返回包装器
类mainclass():
def uuu init uuu(self,data):self.data=data
@财产
def asArr(自我):返回列表(自我数据)
mainclass.asArr=计时器(mainclass.asArr)

是否有一种方法可以将其作为第一类函数获取,然后在捕获它之后,我可以将其转换回链接到该类的属性以供任何实例使用?也欢迎任何替代解决方案。

请发布一个我们可以实际测试的示例。你现在拥有的甚至在语法上都是无效的,因为
class
是一个关键字。你能解释一下“我只想在活动文件是主文件的情况下装饰它”的意思吗?请发布一个我们可以实际测试的示例。你现在所拥有的甚至在语法上都是无效的,因为
class
是一个关键字。你能解释一下“如果活动文件是主文件,我只想装饰它”的意思吗?