2017-07-17 80 views
0

我正在尝试在我的Python 3代码中实现PEP-484。而在下面的练习问题,它看起来像工作:Python类型提示 - 如何提示可选参数的默认值不是None?

def fetch_n(what: str, n="all") -> List[obj]: 
    query = "some sql string" 
    if n == "all": 
     # do the fetching 
    elif isinstance(n, int): 
     query = query + " LIMIT ?" 
     # do the fetching 
    else: 
     raise ValueError 

是否有可能暗示n在函数定义是 - const str or int?如果是的话,该怎么做?

我读了cheat-sheet,目前我使用的是from typing import Optionaln: Optional[int],但它不能按照需要工作。

回答

2

Optional[X]仍然只是一种类型的提示 - 它意味着X or None。也许在这里你需要一个Union来代替:

def fetch_n(what: str, n: Union[str, int] = "all") -> List[obj]: 
    ... 
+0

联盟在这里是正确的。 +1 –

相关问题