4

입력 방법 인수 : 파이썬 :이 함수의 인수에 유형을 추가하는 것이 가능 Python3에서

def foo(bar: str = "default") -> str: 
    """ 
    @param bar: a textual value 
    """ 
    return "test" 

지금 나는 두 가지 질문을 얻었다. 먼저 콜백 함수에 대해 어떻게 할 수 있습니까? 의미, 함수 헤더에서 해당 콜백의 서명을 정의하는 방법은 무엇입니까?

def foo(callback) -> str: 
    """ 
    @param callback: function(value: str) -> str 
    """ 
    # calculate some intermediate stuff 
    my_var = ...  
    return callback(my_var) 

둘째, 어떻게해야 할 일이 튜플합니다. 여기에는 값이 유형 튜플이고 두 개의 값 (세 개가 없음)이 있어야한다는 정의가 포함됩니다.

def foo(value) -> str: 
    """ 
    @param value: tuple of strings 
    """ 

    v1, v2 = value 
    return v1 + v2 

귀하의 의견과 답변에 감사드립니다. tuple 두 개의 문자열에 대한

from typing import Callable 


def foo(callback: Callable[[str], str]) -> str: 
    # calculate some intermediate stuff 
    my_var = '...' 
    return callback(my_var) 

, 당신은 사용할 수 있습니다 :

from typing import Tuple 


def foo(value: Tuple[str, str]) -> str: 
    v1, v2 = value 
    return v1 + v2 
+3

가 HTTPS를 참조하십시오 –

+0

콜백은 호출 가능 –

+0

이지만 콜백은 호출해야하는 서명을 충족해야합니다. 위의 예를 참조하십시오. – Matthias

답변

2

는이 같은 Callable을 사용할 수 있습니다, 콜백 함수의 서명을 지정하려면 // docs.python.org/3/library/typing.html