在Python3.7中是否可以为函数输入参数使用静态类型声明?

时间:2019-05-02 13:37:25

标签: python python-3.x types nameerror

这是我在leetcode.com上的Python3代码框架中看到的语法。注意函数输入参数的类型声明(或者至少我认为它们是类型声明,以前从未见过)。 nums必须是List中的int,而s必须是int

class Solution:
    def findTargetSumWays(self, nums: List[int], S: int) -> int:
        pass

如果我在leetcode.com的环境中运行该函数,则该函数将退出而不会出现错误。但是,如果我在自己的Python 3.7.3环境中运行相同的代码,则会收到NameError。

def findTargetSumWays(self, nums: List[int], S: int) -> int: NameError: name 'List' is not defined

怎么了? leetcode.com上的语法甚至是真正的Python吗?

1 个答案:

答案 0 :(得分:1)

是的,这是真实的语法,我相信从3.7开始正式使用。

此静态类型中使用的List是从typing模块导入的。

您可以在PEP-484: Type Hintstyping module docs中阅读有关此内容的更多信息。