Python: obtener una referencia a una función desde dentro de sí mismo

Si defino una función:

def f(x): return x+3 

Más tarde puedo almacenar objetos como atributos de la función, así:

 f.thing="hello!" 

Me gustaría hacer esto desde dentro del código de la función en sí. El problema es, ¿cómo obtengo una referencia a la función desde dentro de sí misma?

De la misma manera, solo usa su nombre.

 >>> def g(x): ... gr = 4 ... >>> g  >>> g(3) >>> gr 4 

Si está intentando realizar una memorización, puede usar un diccionario como parámetro predeterminado:

 def f(x, memo={}): if x not in memo: memo[x] = x + 3 return memo[x] 

O utilice un cierre:

 def gen_f(): memo = dict() def f(x): try: return memo[x] except KeyError: memo[x] = x + 3 return f f = gen_f() f(123) 

En cierto modo MEJOR