피해야 할 Python Anti-pattern .
Python 반패턴: Impure(IO) 기본 인수
파이썬 함수에서 가장 좋아하는 기능 중 하나는 기본 인수입니다. 우리는 그것들을 사용합니다
매일 . 하지만 당신이 돌봐야 할 문제가 있습니다.
함수 기본 인수는 함수 호출 시간이 아니라 모듈 로드 시간에 평가됩니다.
기본 인수가 정적이고 결정적일 때 성능 이점에 도움이 됩니다.
따라서 함수가 비결정적이거나 부작용이 있는 경우 문제가 발생할 수 있습니다.
예에서 볼 수 있듯이 인쇄된 시간은 고정되어 있습니다. 코드가 처음 평가될 때 한 번 설정되었습니다.
# Antitpattern and buggy
def current_datetime(dt = datetime.datetime.now()):
print(dt)
>>> current_datetime()
2021-10-09 16:09:43.009959
>>> current_datetime()
2021-10-09 16:09:43.009959
# do this instead
def current_datetime(dt=None) :
if dt is None :
dt = datetime.datetime.now()
print(dt)
current_datetime()
>> 2022-07-24 16:07:16.435203
current_datetime()
>> 2022-07-24 16:08:16.635203
Reference
이 문제에 관하여(피해야 할 Python Anti-pattern .), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aabidsofi/python-anti-pattern-you-should-avoid--5g3j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)