4

は、関数の引数にタイプを追加することが可能です:Pythonの:のpython3で入力されたメソッドの引数

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

は今、私は2つの質問を得ました。まず、コールバック関数についてはどうすればよいですか?意味、コールバックのシグネチャを関数ヘッダに定義する方法は?

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

第二には、どのように行うことタプルため。これは、値がタプル型であり、2つの値(トリプルなしなど)を持つことを定義することを含みます。

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

    v1, v2 = value 
    return v1 + v2 

ご意見ありがとうございます。コールバック関数のシグネチャを指定するには

+3

参照します。https:// docs.python.org/3/library/typing.html –

+0

コールバックは呼び出し可能な –

+0

ですが、コールバックは呼び出される必要がある署名を満たさなければなりません。上記の例を参照してください。 – Matthias

答えて

2

、あなたはこのように、Callableを使用することができます:あなたが使用できる2つの文字列の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 
関連する問題