728x90
반응형
질문 : 함수 내부의 정적 변수에 해당하는 Python은 무엇입니까?
이 C / C ++ 코드와 동등한 관용적 Python은 무엇입니까?
void foo()
{
static int counter = 0;
counter++;
printf("counter is %d\n", counter);
}
특히, 클래스 수준이 아닌 함수 수준에서 정적 멤버를 어떻게 구현합니까? 함수를 클래스에 배치하면 어떤 변화가 있습니까?
답변
약간 반전되었지만 작동합니다.
def foo():
foo.counter += 1
print "Counter is %d" % foo.counter
foo.counter = 0
카운터 초기화 코드를 하단 대신 상단에 배치하려면 데코레이터를 만들 수 있습니다.
def static_vars(**kwargs):
def decorate(func):
for k in kwargs:
setattr(func, k, kwargs[k])
return func
return decorate
그런 다음 다음과 같은 코드를 사용하십시오.
@static_vars(counter=0)
def foo():
foo.counter += 1
print "Counter is %d" % foo.counter
foo.
를 사용해야합니다. 불행히도 접두사.
(크레딧 : @ony )
출처 : https://stackoverflow.com/questions/279561/what-is-the-python-equivalent-of-static-variables-inside-a-function
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
프로젝트 오일러와의 속도 비교 : C vs Python vs Erlang vs Haskell (0) | 2021.12.05 |
---|---|
파이썬 return vs return None vs no return at all (0) | 2021.12.05 |
파이썬에서 시간 지연을 만드는 방법 (0) | 2021.12.04 |
파이썬의 목록에서 고유 한 값 얻기 (0) | 2021.12.04 |
Python의 matplotlib 설치 문제 (0) | 2021.12.04 |