随着python数据类装饰器的最新介绍,编写模型类非常容易。
但是我不确定如何在自引用结构/模型类的上下文中使用-例如LinkedList的内部ListNode / Node模型类。
>>> from dataclasses import dataclass
>>> from typing import Type
>>>
>>> @dataclass
... class Node:
... data: int
... link: Node
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in Node
NameError: name 'Node' is not defined
>>>
>>>
>>> @dataclass
... class Node:
... data: int
... link: Type[Node] # have tried Type hinting
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module> …Run Code Online (Sandbox Code Playgroud) 是)我有的?
gradle构建脚本
apply plugin:'application'mainClassName ="MainApp"sourceSets.main.java.srcDirs = ['.'']
所以,当我这样做时gradle run,它会执行main方法,一切都很完美.
C:\tmp\gradle-fun>gradle run :compileJava :processResources UP-TO-DATE :classes :run Hello MainApp !! BUILD SUCCESSFUL
我想做的事?
现在我想知道在run任务执行之前清理构建目录的干净任务(常见构建任务).
这背后有理由,我想确保每次gradle都应该编译java文件,并且应该刷新所有.class文件(它的一些要求)
我试过了什么?
添加了一个包装器任务,它按顺序执行干净任务和运行任务.
apply plugin: 'application'
mainClassName = "MainApp"
sourceSets.main.java.srcDirs = ['.']
task exec(dependsOn: ['clean', 'run'])
Run Code Online (Sandbox Code Playgroud)
因此,当我跑步时gradle exec,它可以正常工作.但是,当你有额外的任务只是为了执行订单时,我觉得它的补丁工作.
C:\tmp\gradle-fun>gradle run :clean :compileJava :processResources UP-TO-DATE :classes :run Hello MainApp !! :exec BUILD SUCCESSFUL
我想知道什么?
有没有办法避免编写包装器任务并做一些Gradle魔法来达到要求?