【发布时间】:2021-12-09 10:07:34
【问题描述】:
我最近研究了装饰器如何在 python 中工作,并找到了一个将装饰器与嵌套函数集成的示例。 代码在这里:
def integer_check(method):
def inner(ref):
if not isinstance(ref._val1, int) or not isinstance(ref._val2, int):
raise TypeError('val1 and val2 must be integers')
else:
return method(ref)
return inner
class NumericalOps(object):
def __init__(self, val1, val2):
self._val1 = val1
self._val2 = val2
@integer_check
def multiply_together(self):
return self._val1 * self._val2
def power(self, exponent):
return self.multiply_together() ** exponent
y = NumericalOps(1, 2)
print(y.multiply_together())
print(y.power(3))
我的问题是内部函数参数(“ref”)如何访问实例属性(ref._val1 和 ref._val2)? 似乎 ref 等于实例,但我不知道它是如何发生的。
【问题讨论】:
标签: python python-decorators nested-function