24得票3回答
不导入候选项的情况下使用isinstance函数

我们有一个函数,该函数接受多种不同类型的输入:函数、字符串、编译后的正则表达式、Hamcrest Matcher。根据输入的类型适当地过滤列表。 我们目前正在使用 isinstance(our_filter, hamcrest.matcher.Matcher),但这要求我们必须安装 Hamc...

23得票4回答
Python中的文件对象是什么类型?

我该如何使用isinstance来确定文件对象的“类型”,例如在这个表达式中:>>> open(file)

22得票4回答
为什么isinstance()不能与协议一起使用?

新的typing模块包含几个对象,它们的名称像“SupportsInt”( -Float,-Bytes等)。这些名称,以及在模块文档页面上的描述可能被读作是你可以测试一个对象是否是支持__int __()类型的代码。但如果你尝试使用isinstance(),它会给出一个明确的响应,表明这不是你...

22得票5回答
检查一个注释是否为特定类型

我正在使用反射来查看一个类的属性是否附有一个特定类型的注释。目前我正在执行:if("javax.validation.Valid".equals(annotation.annotationType().getName())) { ... } 这给我的感觉有点不太妥当,因为它依赖于一个完全...

22得票6回答
Python:检查一个对象是否为字符串列表

如何检查一个对象是否为字符串列表?我只能检查一个对象是否是字符串,如下:def checktype(obj): if isinstance(obj,str): print "It's a string" obj1 = ['foo','bar','bar','black','she...

14得票1回答
为什么'decimal.Decimal(1)'不是'numbers.Real'的实例?

我尝试检查变量是否是任何类型(int、float、Fraction、Decimal等)的数字实例。 我遇到了这个问题和它的答案:如何正确使用Python的isinstance()函数检查变量是否为数字? 然而,我想排除复数,如1j。 numbers.Real类看起来很完美,但它对于Dec...

13得票1回答
如何在 List 中使用 isinstance?

我将尝试解释Python的类型注释是如何工作的(例如List和Dict-而不是list或dict)。我特别关注isinstance(list(), List)是如何工作的,以便我可以创建自己的自定义注释。 我看到List被定义为: class List(list, MutableSeque...

10得票3回答
`isinstance()`应该检查typing还是collections.abc?

typing和collections.abc都包含类似的类型,比如Mapping、Sequence等。 根据Python文档,似乎更推荐使用collections.abc进行类型检查: 这个模块提供了可用于测试类是否提供特定接口(例如,它是否是可哈希的或者是否是映射)的抽象基类。 https...

9得票4回答
Python中的鸭子类型用于pygame中MVC事件处理

我和朋友一起尝试使用pygame,发现了使用pygame构建游戏的这个教程。我们非常喜欢它将游戏分解为模型-视图-控制器系统,并使用事件作为中介,但代码在事件系统中大量使用isinstance检查。 例如: class CPUSpinnerController: ... d...

9得票2回答
为什么Python的`except`语句不使用`isinstance`?

Python 文档中的except说明: 对于带有表达式的 except 子句,该表达式将被计算,如果结果对象与异常“兼容”,则该子句匹配该异常。如果一个对象是异常的类或基类,则它与异常兼容。 为什么 except 没有使用 isinstance 而是比较基类?这使得无法使用 __in...