相关疑难解决方法(0)

如何在使用类型提示时编写作为链表中的节点的 Python 类

在 Python 3.7 中,我有一个数据类,它是链表中的一个节点。

from dataclasses import dataclass

@dataclass
class Node(object):
    right: Node
    left: Node
Run Code Online (Sandbox Code Playgroud)

问题是我在 Pycharm 中收到检查错误:

未解析的引用“节点”

运行时出现此错误

名称错误:名称“节点”未定义

dataclass 要求我声明类型,那么如何解决这个问题?

python

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

如何在 Pydantic 中声明静态方法/类方法返回相关类的实例?

我正在使用 Python 3.7 并有类似的东西

class A(object):

  def __init__(self, value: int):
    self.value = value
  
  @classmethod
  def factory(cls, value: int) -> A:
    return A(value=value)
Run Code Online (Sandbox Code Playgroud)

是的,这是一个人为的示例,但我本质上是试图注释工厂函数以声明它返回 的实例,但是,当我尝试 在文件上A运行 linter 时,此操作会失败,因为它抱怨未定义。flake8A

有没有什么方法可以注释这个函数,这样 linter 就不会抱怨?

python python-3.x flake8 python-typing pydantic

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

Python类型提示:自引用类型检查

我认为静态类型会让我的生活变得更容易在Python中,考虑到我通常在C中工作.我创建了一个类似的类:

class node(object):
    """
    properties, constructor, etc.
    """

    def add_outneighbor(self, neighbor: node) -> None:
        """
        do stuff
        """
Run Code Online (Sandbox Code Playgroud)

Flake8告诉我这node是一个未知类型add_outneighbor的定义.目前我正在解决这个问题isinstance(arg, type),但这似乎打败了类型提示的目的.有一个更好的方法吗? 是我提到的资源,以获取有关类型提示的信息,但我找不到有关此自引用问题的任何讨论.

type-hinting python-3.x

0
推荐指数
1
解决办法
339
查看次数

Python 类型提示:类定义本身的类型提示

class Session:
    

    @staticmethod
    def load_from_json(json_path:str) -> Session:
        pass
Run Code Online (Sandbox Code Playgroud)

上面抛出一个NameError: name 'Session' is not defined. 在其定义中使用自身作为类型提示是不可能的吗?

python class type-hinting

0
推荐指数
1
解决办法
717
查看次数