如果我有这样的东西:
def f(x, cache=[]):
cache.append(x)
如何从cache
外部访问f
?
您可以使用__defaults__
魔法:
__defaults__
为了完整起见,也可以使用>>> def f(x, cache=[]):
... cache.append(x)
>>> f.__defaults__
([],)
>>> f(2)
>>> f.__defaults__
([2],)
>>> f('a')
>>> f.__defaults__
([2, 'a'],)
>>> c, = f.__defaults__
>>> c
[2, 'a']
,这是更明确的:
inspect.getfullargspec
函数范围内的变量不应该在外部访问。
您应该做的是使用一个全局变量来存储您的缓存:
inspect.getfullargspec