小编Mut*_*pus的帖子

名称未在类型注释中定义

我正在创建一个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 type-hinting python-3.x

30
推荐指数
2
解决办法
6258
查看次数

更改Python交互式提示">>>"

这可能是一个愚蠢的问题,我可能会最终将其删除,一旦我搞清楚,但我发誓我记得读,在Python 3.5文档,如何改变>>>对Python的交互提示,例如,如何调用help()意志改为help>.但出于某种原因,当我回去试图记住时,我却找不到它的指示.有谁知道这是可能的,还是我只想象事情?

谢谢

python command-line command-line-interface python-3.x

20
推荐指数
2
解决办法
4360
查看次数

为什么Rust的运算符具有Output变量类型?

我一直在线阅读Rust书,我已经达到4.1,操作员和重载.我注意到,std::ops::Add将其定义为fn add(self, rhs: RHS) -> Self::Output;具有type Output在该性状分别定义的.

我理解这里发生了什么:add函数接受左侧作为self,右侧接受通用参数类型RHS.

我想知道为什么用Output别名定义输出类型,而不是另一个泛型(例如Add<RHS, Output>)?它只是一个惯例,还是有特定的理由?

generics operator-overloading rust

9
推荐指数
2
解决办法
1620
查看次数

Resolve-Path cmdlet 究竟有什么作用?

我最近开始在我的 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 包含无关信息并只返回扩展路径?

powershell path

3
推荐指数
1
解决办法
8526
查看次数

Git 父分支正在获取子分支的更改

我有一个名为branch1.

我通过做创建一个子分支

git checkout -b branch2
Run Code Online (Sandbox Code Playgroud)

然后,我要结帐branch2

git checkout branch2
Run Code Online (Sandbox Code Playgroud)

我做了一些改变 branch2

当我结帐到 时branch1,我会看到我在 中所做的代码更改branch2

我不希望父分支与子分支同步。当我觉得子分支有正确的代码时,我会将子分支的代码更改合并到父分支中。

如何避免父分支获取子分支的代码更改?

git

3
推荐指数
1
解决办法
609
查看次数

为什么我的规范化路径以\\?\为前缀

我正在尝试通过规范化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)

这不是一个特别的问题,因为我可以通过其他方式完成我正在尝试的事情.但是,这似乎是奇怪的行为,特别是如果您要以某种方式使用路径的字符串形式,这需要准确性.为什么这个字符序列在结果前面,我怎样才能避免它?

windows filesystems canonicalization rust

2
推荐指数
1
解决办法
146
查看次数