当前位置: 首页 > 面试题库 >

对参数进行类型检查Python

边翔宇
2023-03-14
问题内容

有时需要检查Python中的参数。例如,我有一个函数可以接受网络中其他节点的地址作为原始字符串地址,也可以接受封装其他节点信息的类Node。

我使用type()函数,如下所示:

    if type(n) == type(Node):
        do this
    elif type(n) == type(str)
        do this

这是这样做的好方法吗?

更新1: Python 3具有函数参数的注释。可以使用以下工具将其用于类型检查:http ://mypy-lang.org/


问题答案:

使用isinstance()。样品:

if isinstance(n, unicode):
    # do this
elif isinstance(n, Node):
    # do that
...


 类似资料:
  • 问题内容: 如下代码: 原因: 无法对参数化类型执行检查。请改用表格,因为其他通用类型信息将在运行时删除 有人可以解释一下“进一步的通用类型信息将在运行时删除”的含义,以及如何解决此问题吗? 问题答案: 这意味着,如果您有任何已参数化的内容,例如,泛型信息将在运行时删除。相反,这是JVM将看到的内容。 这称为类型擦除。在运行时,JVM没有参数化的类型信息(在示例中)。 解决吗?由于JVM在运行时没

  • 我有疑问。我写了一个流类型检查器来检查我的减速器。有一个错误,你能给我解释一下错误的原因吗。这是我的密码。 这是错误。 错误------------------------------------------------------------------------------------------------------------------------------------------

  • 我最近一直在摆弄泛型类型,在编写一个函数时,我不得不使用函数中的一个参数来确定返回类型。 大致来说,我想做以下几点: 在Typescript平台上运行上述代码时,我遇到以下错误消息: 类型“number”不能分配给类型“ReturnType”“number”可分配给“ReturnType”类型的约束,但“ReturnType”可以用约束“string | number”的不同子类型实例化。(232

  • 问题内容: 我知道,在Python中通常不赞成使用类型检查函数参数,但我认为这样做很有意义。 在我的项目中,我有一个抽象基类和一个子类,该子类具有更多功能,例如旋转,幅度变化等。数字的列表和元组也将返回True,因为我也有许多接受这些Coord类型作为参数的函数和方法。 。我已经设置了装饰器来检查这些方法的参数。这是一个简化的版本: 这个版本非常简单,仍然有一些错误。只是为了说明这一点。它的用法如

  • javac如何检查参数化类型?我找到了关于JVM规范的信息http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10.1但是关于泛型类型的信息在运行时不可用。或者检查类似于算法JVM的算法javac?请帮助我解决这个问题!

  • 问题内容: 我有以下我想用流程注释的内容: 我知道该怎么做了类型检查,这样的类型的(如上图所示),但我怎么能型检查其属性呢? 已经尝试过: 但是随后流程只是抱怨而从未使用过。 问题答案: 因此,您要发送类型为的道具,该道具必须具有属性和? 如果没有编写执行此检查的自定义函数,则无法实现。为此,您需要这样声明: 这是官方文档所说的: 您还可以指定一个自定义验证器。如果验证失败,它将返回一个Error