问题及解决
在学习算法过程中,看到了类似如下代码:
class Solution:
def fun_1(self, nums: List[int]) -> List[int]:
pass
将代码复制下来运行,还会报如下错误:
NameError: name ‘List‘ is not defined
先说解决方案,在代码上方引入typing:
from typing import List
-> List[int]是什么样的语法
其中def fun_1(self, nums: List[int]) -> List[int]:
比较疑惑,查了查资料,发现这叫类型提示,3.5版本的新语法。
Python 运行时不强制执行函数和变量类型注解,但这些注解可用于类型检查器、IDE、静态检查器等第三方工具。
也就是说你写错了也不会影响程序运行,但是当然不建议这么做。
此模块为运行时提供类型提示支持。最基本的支持类型包括Any、Union、Callable、TypeVar和Generic。要获得完整的规范,请参阅PEP 484。
下面的函数接收与返回的都是字符串,注解方式如下:
def greeting(name: str) -> str:
return 'Hello ' + name
greeting
函数中,参数name
的类型是str
,返回类型也是str
。子类型也可以当作参数。
当然相关内容还很多,可以参考官方文档