这是我在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吗?
答案 0 :(得分:1)
是的,这是真实的语法,我相信从3.7开始正式使用。
此静态类型中使用的List
是从typing
模块导入的。
您可以在PEP-484: Type Hints或typing
module docs中阅读有关此内容的更多信息。