루프 내부에 함수를 정의하면 모든 반복에 대해 함수가 재정의됩니다. 아니면 파이썬이이를 최적화 할 수 있습니까?

게코

때때로 편의를 위해 임시 함수를 정의합니다.

def parse_time(string):
   h, m = string.split(':')
   return timedelta(hours=h, minutes=m)

something = parse_time(re.search(r'(\d\d:\d\d)', line).group(1))

괜찮습니다. 이제 루프 안에 위의 스 니펫이 있습니다.

for line in file:
   # ... some code

    def parse_time(string):
        h, m = string.split(':')
        return timedelta(hours=h, minutes=m)

    something = parse_time(re.search(r'(\d\d:\d\d)', line).group(1))

제 질문은 파이썬이 이것을 최적화할까요, 아니면 각 반복에 대해 함수를 재정의할까요? 어떻게 확인할 수 있습니까?

문안 인사,

JacobIRR

루프 내에서 함수를 정의하는 것은 낭비입니다. def키워드로 인해 매번 함수를 (재) 정의합니다 . 간단한 테스트 :

>>> def foo(x):
...   print(x + 1)
...
>>> id(foo)
1971729284632
>>> def foo(x):
...   print(x + 1)
...
>>> id(foo)
1971739226320

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관