>

함수가 함수 인수를 받거나 클래스에 함수 슬롯이 있으면 두 가지 접근 방식 중에서 선택할 수 있습니다 :

def foo(..., my_func=None, ...):
    ...
    if my_func:
        my_func(...)
    ...

그리고

def foo(..., my_func=(lambda ...: None), ...):
    ...
    my_func(...)
    ...

Pythonic/clear/Read는 무엇입니까?

빠른 점은 무엇입니까-추가 부울 검사 또는 사소한 함수 호출?


  • 답변 # 1

    이걸 사용할 때 :

    >>> def bar():
    ...     print("Goodbye, World!")
    ...
    
    

    이 글은 매우 읽기 쉽다 :

    >>> def foo(my_func = lambda : None):
    ...     my_func()
    ...
    >>> foo()
    >>> foo(bar)
    Goodbye, World!
    
    

    이것은 무의미하게 성가시다

    >>> def baz(my_func = None):
    ...     if my_func is not None:
    ...         my_func()
    ...
    >>> baz()
    >>> baz(bar)
    Goodbye, World!
    
    

    보관하지 말아라. 잘하는 일을하고 싶을 때는 없음을 사용하십시오 : 얼굴을 날려 버리십시오. 조용히 요청하지 마십시오. 어떤 방법 으로든 사용하면 성가신 소음이 발생합니다.

    와이즈 비즈

    왜 신의 이름으로 신경 쓰나요?

    <시간>

    기록을 위해, 나는 이것을 읽을 수 있지만 지나치게 허용되는 것을 발견했다 :

    What is faster - an extra boolean check or a trivial function call?

    >>> def buz(my_func = lambda **k:None): ... my_func() ... >>> buz(bar) Goodbye, World!

  • 이전 google cloud platform - kubernetes 워크로드에 커스텀 GCP 서비스 계정을 어떻게 제시합니까?
  • 다음 nlp - 텍스트 데이터를위한 R 라임 패키지