相关疑难解决方法(0)

如何指定方法的返回类型与python中的类本身相同?

我在python 3中有以下代码:

class Position:

    def __init__(self, x: int, y: int):
        self.x = x
        self.y = y

    def __add__(self, other: Position) -> Position:
        return Position(self.x + other.x, self.y + other.y)
Run Code Online (Sandbox Code Playgroud)

但是我的编辑器(PyCharm)说无法解析引用位置(在_add__方法中).我该如何指定我希望返回类型是类型__add__

编辑:我认为这实际上是一个PyCharm问题.它实际上使用其警告中的信息和代码完成

但如果我错了,请纠正我,并需要使用其他语法.

python typing pycharm python-3.x python-3.5

277
推荐指数
7
解决办法
4万
查看次数

Python 3.6中的相互递归类型,使用命名元组语法

我正在尝试为图表实现节点和边缘.这是我的代码:

from typing import NamedTuple, List

class Node(NamedTuple):
    name: str
    edges: List[Edge]

class Edge(NamedTuple):
    src: Node
    dest: Node
Run Code Online (Sandbox Code Playgroud)

这会引发错误,因为创建Edge时未定义类型Node.

NameError: name 'Edge' is not defined
Run Code Online (Sandbox Code Playgroud)

切换定义不起作用,因为Edge也指Node.

我怎样才能使它工作?

python type-hinting python-3.x

5
推荐指数
2
解决办法
408
查看次数

标签 统计

python ×2

python-3.x ×2

pycharm ×1

python-3.5 ×1

type-hinting ×1

typing ×1