我正在创建一个python线性代数模块,用于娱乐和练习语言.我最近尝试向模块添加类型注释,如下所示:
class Vector:
# Various irrelevant implementation details
def __add__(self, other: Vector) -> Vector:
# More implementation details....
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试导入它时,它会吐出一个NameError: Name 'Vector' is not defined
.我承认这个问题已经在这里以一种形式得到了回答,但它似乎并没有完全为我的情况提供答案.
我想知道的是什么:
Vector
以这样的方式定义它可以用于注释(作为a type
)?这可能是一个愚蠢的问题,我可能会最终将其删除,一旦我搞清楚,但我发誓我记得读,在Python 3.5文档,如何改变>>>
对Python的交互提示,例如,如何调用help()
意志改为help>
.但出于某种原因,当我回去试图记住时,我却找不到它的指示.有谁知道这是可能的,还是我只想象事情?
谢谢
我一直在线阅读Rust书,我已经达到4.1,操作员和重载.我注意到,std::ops::Add
将其定义为fn add(self, rhs: RHS) -> Self::Output;
具有type Output
在该性状分别定义的.
我理解这里发生了什么:add
函数接受左侧作为self
,右侧接受通用参数类型RHS
.
我想知道为什么用Output
别名定义输出类型,而不是另一个泛型(例如Add<RHS, Output>
)?它只是一个惯例,还是有特定的理由?
我最近开始在我的 Windows 10 系统上使用 Powershell。我创建了一个配置文件,我想放入一个变量,该变量链接到我的文档部分中的文件夹。但是,我不想对路径进行硬编码,因为我知道如果我的配置文件名称在硬盘驱动器传输中发生更改,就像我上次发送它时所做的那样,我需要进入并重新编写它维修。所以我的第一个想法是放入这样的东西:
$Var = $(~\Documents\Folder)
Run Code Online (Sandbox Code Playgroud)
但这吐了一个错误。然后我了解了 Resolve-Path Cmdlet,它一眼看上去就是我所需要的。但是,当我这样做时:
$Var = $(Resolve-Path ~\Documents\Folder)
Run Code Online (Sandbox Code Playgroud)
... 我懂了:
>$Var
Path
----
C:\Users\Username\Documents\Folder
>
Run Code Online (Sandbox Code Playgroud)
这似乎是一个问题。但是,当我尝试时cd $Var
,它成功了,这让我非常困惑。我认为结果中的无关Path
标头会导致错误。
究竟做了Resolve-Path
什么,为什么它在传入时仍然被正确解释cd
?另外,有没有办法让Resolve-Path
不包含无关信息并只返回扩展路径?
我有一个名为branch1
.
我通过做创建一个子分支
git checkout -b branch2
Run Code Online (Sandbox Code Playgroud)
然后,我要结帐branch2
做
git checkout branch2
Run Code Online (Sandbox Code Playgroud)
我做了一些改变 branch2
当我结帐到 时branch1
,我会看到我在 中所做的代码更改branch2
。
我不希望父分支与子分支同步。当我觉得子分支有正确的代码时,我会将子分支的代码更改合并到父分支中。
如何避免父分支获取子分支的代码更改?
我正在尝试通过规范化Rust中的相对路径来尝试解决的个人项目.但是,每当我这样做时,新路径都会以奇怪的\\?\
序列作为前缀.例如,简单的事情:
let p = fs::canonicalize(".").unwrap();
println!("{}", p.display());
Run Code Online (Sandbox Code Playgroud)
将导致类似以下输出:
\\?\C:\Users\[...]\rustprojects\projectname
Run Code Online (Sandbox Code Playgroud)
这不是一个特别的问题,因为我可以通过其他方式完成我正在尝试的事情.但是,这似乎是奇怪的行为,特别是如果您要以某种方式使用路径的字符串形式,这需要准确性.为什么这个字符序列在结果前面,我怎样才能避免它?
python ×2
python-3.x ×2
rust ×2
command-line ×1
filesystems ×1
generics ×1
git ×1
path ×1
powershell ×1
type-hinting ×1
windows ×1