2017-03-09 50 views
3

比方說,我有以下代碼:如何輸入提示函數返回函數?

def validator(blacklist: list=['heck', 'muffins']): 

    def f(questionable_word: str) -> bool: 
     return questionable_word in blacklist 

    return f 

validator_british = validator(['pish']) 
validator_british('pish') # returns True 
validator_british('heck') # returns False 

我的問題是怎麼做我的類型提示的validator功能,使得它指示返回的功能,具體功能,需要一個str,並返回一個bool ?該f函數的簽名是:

def f(questionable_word: str) -> bool 

我怎麼放在???地方validator

validator(blacklist: list=['heck', 'muffins']) -> ???: 

回答

3

typing.Callable是你想要什麼:

validator(blacklist: list=['heck', 'muffins']) -> Callable[[str], bool]: 
+0

輝煌!謝謝! –