때때로 편의를 위해 임시 함수를 정의합니다.
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))
제 질문은 파이썬이 이것을 최적화할까요, 아니면 각 반복에 대해 함수를 재정의할까요? 어떻게 확인할 수 있습니까?
문안 인사,
루프 내에서 함수를 정의하는 것은 낭비입니다. def
키워드로 인해 매번 함수를 (재) 정의합니다 . 간단한 테스트 :
>>> def foo(x):
... print(x + 1)
...
>>> id(foo)
1971729284632
>>> def foo(x):
... print(x + 1)
...
>>> id(foo)
1971739226320
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다