首页 > 编程语言 >python用vscode编程关于类型注释引用后续类型的小技巧

python用vscode编程关于类型注释引用后续类型的小技巧

时间:2023-07-14 11:14:29浏览次数:39  
标签:Node None Task 补全 python self vscode 类型

python的类型注释还是很方便的, 相当于动态语言中增加类型系统, 很方便支持代码自动补全.
但是它毕竟不是编译型语言, 如果引用的类型在后面定义, 就会出现找不到此类型的提示.
这时候只需要把这个类型当作字符串就可以了, 不仅不会报错, 仍然还会享受代码补全的好处.
如下所示:

class GlobalVars:
    '''全局变量'''
    Stop = False    # 表示LongRun是否可以停止
    CurTask:'Task' = None   # 表示当前任务, 会随着应用自动保存和恢复
    pass

class Node: pass

class Task:
    '''任务对象'''
    def __init__(self) -> None:
        self.name = ''    # 任务名称
        self.nodesDict:dict[str,Node] = {} # 节点字典, key: node.id, value: Node对象
        self.startNodeIds:list[str] = []  # 起始节点Id的列表
        self.curNodeId:str = None   # 当前节点ID

CurTask变量的类型为Task, 可是这个类是在后面定义的, 直接指定会报错, 只需要把它写成字符串就好了, 并且支持代码补全, 如下图所示:
image

标签:Node,None,Task,补全,python,self,vscode,类型
From: https://www.cnblogs.com/huzhongqiang/p/17553106.html

相关文章

  • Python3+Django2实现后台管理系统入门
    Python3+Django2实现后台管理系统入门前言使用Django我们只需要做一些配置,就可以实现简单的后台管理系统,下面我们以新闻系统为例子来搭建后台。创建项目切换到工作空间,执行以下命令:django-admin.pystartprojectitstyle#进入itstyle文件夹cditstyle#创建newsApp......
  • python 装饰器
    目录装饰器应用场景装饰器#装饰器,反复的验证状态,从而判断是否继续下一步。经常用来判断用户的登陆状态。比如flask,他的很多东西都是装饰器#装饰器依赖闭包deftest():print('>>>text>>>')#类比a=10b=a,a=0是声明整数b=a是声明函数。defalex(t):print(......
  • mybatis if标签判断Integer类型的值不等于0 (!=''等价于!=0)
    场景当传入的activityInfoDTO属性codeAction的值为0时,需要通过状态(code_action=0或1)来查询数据,code_action类型为Integer<iftest="activityInfoDTO.codeAction!=nullandactivityInfoDTO.codeAction!=''">andcode_action=#{acti......
  • python arrow在图上绘制箭头
    importmatplotlib.pyplotaspltdefdrawArrow(A,B):fig=plt.figure()ax=fig.add_subplot(111)"""箭头起始位置(A[0],A[1])和终点位置(B[0],B[1])length_includes_head=True:表示增加的长度包含箭头部分head_width:箭头的宽度head_length......
  • 特殊类型 调用Number函数
    //特殊类型null a=null; a=Number(a); console.log("nulla转换后类型="+typeofa); console.log("nulla转换后的值="+a); //特殊类型undefined a=undefined; a=Number(a); console.log("undefineda转换后类型="+typeofa); co......
  • Java的数据类型
    标识符关键字  abstractassertbooleanbreakbyte      casecatchcharclassconstcontinue      defaultdodouble      elseforgotoifextends      finalfinallyfloatimplements      import......
  • mysql数据类型
    1、介绍mysql中实现了sql语法的数据类型,并有所增加。总的来说分为三类:数值、字符和时间日期。声明:字段名数据类型2、数值tinyint、smallint、mediumint、int和bigint分别表示1、2、3、4、8个字节的有符号整数。在数据类型后添加unsigned关键字,表示无符号是,比如intunsigne......
  • 5中类型参数传递
           ......
  • Python学习——Day 5
    循环结构·反复做同一件事情的情况,称为循环·循环结构的流程图·循环的分类   ·while   ·for-in·语法结构  while条件表达式:            条件执行体(循环体)a=1#判断条件表达式whilea<10:#执行条件执行体print(a)a+=1......
  • Vscode 设置别名路径和创建快捷模板
    设置别名路径创建jsconfig.json文件,配置@文件路径{"compilerOptions":{"baseUrl":"./","paths":{"@/*":["src/*"]}}} 创建快捷模板 文件->首选项->配置用户代码片段 新建全局代码片段文件......