Posso usar um decorador para alterar o escopo local de uma função em Pytho
Existe alguma maneira de escrever um decorador para que o seguinte funcion
assert 'z' not in globals()
@my_decorator
def func(x, y):
print z
EDIT: movido de anwser
Em resposta ao hop "por quê?": Sintaxe sugar / DRY.
Não se trata de cache, trata-se de calcular z (e z1, z2, z3, ...) com base nos valores de x e
Tenho muitas funções que fazem coisas relacionadas e não quero escrever
z1, z2, z3=calculate_from(x, y)
no início de cada função - eu vou errar em algum lugar. Se fosse c, eu faria isso com cpp (se fosse lisp, faria com macros ...), mas queria ver se os decoradores poderiam fazer a mesma cois
Se isso ajudar, eu quase certamente chamaria o decorador de "pré-cálculo_z" e certamente não faria parte de nenhuma API públic
rovavelmente, eu também poderia obter um efeito semelhante ao usar a infraestrutura de classe, mas queria ver se era possível com funções bruta