에서 함수에 대한 참조를 받고 :파이썬 : 나는 함수 정의하면
def f(x):
return x+3
을 내가 할 수있는 함수의 속성과 이후 저장소 개체, 그래서 같은 :
f.thing="hello!"
나는 것 함수 자체의 코드 내부에서이를 수행하는 것이 좋습니다. 문제는, 내부에서 함수에 대한 참조를 얻으려면 어떻게해야합니까?
에서 함수에 대한 참조를 받고 :파이썬 : 나는 함수 정의하면
def f(x):
return x+3
을 내가 할 수있는 함수의 속성과 이후 저장소 개체, 그래서 같은 :
f.thing="hello!"
나는 것 함수 자체의 코드 내부에서이를 수행하는 것이 좋습니다. 문제는, 내부에서 함수에 대한 참조를 얻으려면 어떻게해야합니까?
마찬가지로 이름을 사용하십시오. 당신이 메모이 제이션을하려고하는 경우
>>> def g(x):
... g.r = 4
...
>>> g
<function g at 0x0100AD68>
>>> g(3)
>>> g.r
4
@ 로저 : 글쎄, 그건 내 통역관이 보여준 방식 이었어. – SurDin
혼란 스러웠다. 출력 형식에 따라 다르지만 코드를 인식하고 대답은 견고합니다 (+1). 이것은 "평범한"Python REPL이 보여주는 것이며, 더 많은 사람들에게 더 알아볼 수 있어야합니다. 어떤 통역사를 사용 했습니까? –
, 당신은 기본 매개 변수로 사전을 사용할 수 있습니다
def f(x, memo={}):
if x not in memo:
memo[x] = x + 3
return memo[x]
또는 폐쇄 사용
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)
다소 좋네요을 이럴
왜 이것을 필요로합니까? 너 뭐하려고? –
또한보십시오 http://stackoverflow.com/questions/3109289/how-can-python-function-access-its-own-attributes – mykhal