> 백엔드 개발 > 파이썬 튜토리얼 > Python 함수에서 정적 변수를 어떻게 시뮬레이션할 수 있습니까?

Python 함수에서 정적 변수를 어떻게 시뮬레이션할 수 있습니까?

DDD
풀어 주다: 2024-12-16 19:03:16
원래의
220명이 탐색했습니다.

How Can I Simulate Static Variables in Python Functions?

Python 함수의 정적 변수: C/C 모방

C/C에서 함수는 정적 변수를 선언하여 함수 호출 전반에 걸쳐 상태를 유지할 수 있습니다. 반면 Python은 기본적으로 함수 내에서 정적 변수를 지원하지 않습니다.

Python 함수에서 정적 변수 구현

Python 함수 내에서 정적 변수의 동작을 복제하려면 다음을 사용하세요. 접근 방식:

<사전>
def foo():

if not hasattr(foo, "counter"):
    foo.counter = 0
foo.counter += 1
print("Counter is", foo.counter)
로그인 후 복사

여기서 함수 내부에 "counter" 속성이 있는지 확인합니다. 존재하지 않으면 0으로 초기화합니다. 이 초기화 코드는 첫 번째 함수 호출 시작 시 실행됩니다.

데코레이터 접근 방식

가독성을 높이고 초기화 코드를 다음으로 이동합니다. 상단에는 데코레이터를 사용할 수 있습니다:

<br>def static_vars(**kwargs):</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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", foo.counter)
로그인 후 복사

클래스 범위가 정적 변수에 영향을 미치나요?

클래스 내부의 함수는 정적 변수의 구현을 변경하지 않습니다. 정적 변수는 여전히 클래스별이 아닌 함수별입니다.

위 내용은 Python 함수에서 정적 변수를 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿