LeetCode代码复制到本地 NameError: name ‘List‘ is not defined 报错处理

NameError: name 'List' is not defined

问题

环境:python3.8
代码:在leetcode本地vs code运行时候报错。NameError: name 'List' is not defined

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

原因

经过查询相关的资料,发现只需要在头部导如typing模块就行了。

from typing import List

typing模块

python是一门弱类型的语言,使用过程不用过多关注变量的类型,但是同时也带来了问题,就是代码的易读性变差了,有时候自己都不知道传入的是什么参数。因此在python3.5之后,引入了一个typing模块,这个模块可以很好解决这个问题。

函数接受并返回一个字符串,注释像下面这样:

def greeting(name: str) -> str:
    return 'Hello ' + name

在函数 greeting 中,参数 name 预期是 str 类型,并且返回 str 类型。子类型允许作为参数。

typing模块的作用

  • 类型检查,防止运行时出现参数和返回值类型不对的情况
  • 作为开发文档附加说明,方便使用函数时传入和返回正确的参数,利于开发效率
  • 该模块并不会实际影响到程序的运行,不会报错,但是会有提示。

typing常用类型

  • int,long,float: 整型,长整形,浮点型;

  • bool,str: 布尔型,字符串类型;

  • List, Tuple, Dict, Set:列表,元组,字典, 集合;

  • Iterable,Iterator:可迭代类型,迭代器类型;

  • Generator:生成器类型;

注意:迭代器中的元素可能是多种类型,使用or或union操作符

 

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值