问题标签 [isinstance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
247 浏览

python - 在python中,是否有一个静态等价于isinstance?

我想扫描一个模块(使用dir())并提取type扩展某个父类的类的所有类名(对象)。有没有办法在不首先创建我可以检查的实例的情况下做到这一点isinstance()

0 投票
1 回答
72 浏览

python - 处理 id 和数据库行的异构列表的 pythonic 方式是什么

我的情况是我正在编写一个允许用户从数据库中删除记录的函数。为了提高效率,函数本身必须能够获取用于批量删除的参数列表。此外,为简单起见,该列表可以包含 ID(可以是stringsints行对象(被荣耀dicts

如果您好奇,允许完整行背后的原因是存在检查行数据的安全检查,以确保允许用户删除有问题的行。允许传入行可以减少访问数据库的次数。

isinstance目前,我通过以下方式使用经常受到批评的功能:

我可以看到为什么这是危险的(如果可以将类型强制转换为不是intor的 idbasestring怎么办?),但是对于不以某种方式涉及 isinstance 的更清洁的解决方案,我感到茫然,或依赖可能与我的实际代码相关或不相关的异常。

问题是,在 python 中执行此操作的最有效方法是什么?或者,或者,对调用者这么多只是一个灾难的秘诀,即我应该只要求参数是强制到一个int 行列表的类型列表?

0 投票
1 回答
1082 浏览

python - isinstance 行为与模块重新加载

给定以下两个 .py 文件:

类.py

主文件

在这个阶段,一切正常(我的程序打印True\nTrue)但是如果我修改importer方法以强制重新加载,即:

这一行:

替换为:

我的程序返回

而且我不理解这种行为。

0 投票
1 回答
636 浏览

python - Python:在基于 C 的类型 MatchObject 上使用 isinstance

我正在研究一个函数,我想知道一个对象是否是re.MatchObject. 我尝试使用isinstance,但re.MatchObject它是 C 类型,这不起作用。

hasattr( ... , 'pos')我仍然可以进行类似或任何其他属性的替代测试re.MatchObject,但我不认为它是一个好的解决方案。还有什么办法吗?

0 投票
1 回答
595 浏览

python - 是否可以让 isinstance 或类似的类型检查与我的腌制类一起使用?

我有一个非常烦人的错误,我终于找到了它。

我使用(或更准确地说,已经使用过)一个独立的脚本来创建对象存储,然后我腌制这个数据结构。然后,我可以在每次程序运行时使用反序列化数据初始化我的主程序。

但是,如果我使用类型检查,这将成为一个问题。在我做 pickle.dump() 并得到这个数据结构之后,我设置了它,以便我尝试检查一个对象的类型。不幸的是,我唯一可以检查的就是重新加载我的类,Python 认为这是不同的。

调试:对象我正在检查类型:>> Fixture {name: 'Front Desk', location: '0', desc: 'The front desk has a sign that read...'} <<
DEBUG: A generic GameObject: >> 游戏对象 {name: '', location: 'None', desc: '...' } <<

(您可以看到对象表示看起来非常相似。这是因为一个继承__repr__自另一个,即应该是它的一个实例。)

调试:我正在类型检查的对象类型:{class 'chimai.chimai.objects.fix.Fixture'}
调试:通用游戏对象的类型:{class 'objects.game_object.GameObject'}
调试:对象 I'的 MRO m 类型检查:({class 'chimai.chimai.objects.fix.Fixture'}, {class 'chimai.chimai.objects.game_object.GameObject'}, {type 'object'})
调试:通用游戏对象的 MRO : ({class 'objects.game_object.GameObject'}, {type 'object'})

(GameObject 类的标识符略有不同;这来自我最初运行独立脚本的位置。)

调试:腌制夹具类型的 ID:173671604
调试:在我的主程序中重新加载的夹具类型的 ID:149507748

最终结果是,我根本想不出一种方法来对我的腌制数据进行类型检查。除非有人有任何天才的建议,否则我想我会是鸭子打字。

0 投票
1 回答
94 浏览

python - 在python中读取和解析文件内容

我有一个文件,其中包含以下格式的条目:

FID在读取文件时找出是字符串、元组还是列表的最佳方法是什么?

读取后立即对 FID 的值进行正常isinstance测试是行不通的。感谢任何帮助。

0 投票
3 回答
3065 浏览

python - isinstance 不导入候选人

我们有一个函数,它接受各种不同类型的输入:一个函数、一个字符串、一个编译的正则表达式、一个Hamcrest 匹配器,并根据输入的类型适当地过滤一个列表。

我们目前正在使用isinstance(our_filter, hamcrest.matcher.Matcher),但这需要我们安装 Hamcrest。

我们正在考虑在inspect.getmro(type(POSSIBLE_MATCHER));上使用字符串匹配。但这感觉不干净。在 import 语句周围可能还有带有try/的选项。except

最好的方法是什么?


在@dblslash 的帮助下,这是迄今为止我得到的最好的:

[x.__module__+"."+x.__name__ for x in inspect.getmro(type(POSSIBLE_MATCHER))] ['hamcrest.core.core.isequal.IsEqual', 'hamcrest.core.base_matcher.BaseMatcher', 'hamcrest.core.matcher.Matcher', 'hamcrest.core.selfdescribing.SelfDescribing', '__builtin__.object']

0 投票
1 回答
1663 浏览

python - python 2.7 isinstance 在动态导入的模块类中失败

我目前正在编写某种微型 api 来支持扩展模块类。用户应该能够在配置中写入他们的类名,然后在我们的程序中使用它。约定是,类的模块有一个调用函数create(**kwargs)来返回我们的基本模块类的实例,并放置在一个特殊的文件夹中。但是,一旦动态进行导入,isinstance 检查就会失败。

模块放置在 lib/services/名称中

模块基类(在 lib/services/service 中)

示例模块类(在 lib/services/ping 中)

导入功能

调用代码

我到底做错了什么

这是一个压缩的小示例,只需提取并运行test.py不带参数 zip 示例

0 投票
0 回答
111 浏览

eclipse - 当变量类型未知时,pydev(eclipse)中的代码完成

对于类型未知的变量(不在运行时),对于 codecomplete,以下语句正在工作

断言 isinstance(variable, class) 变量。{codecomplete 作品}

而下面的语句不是

断言 isinstance(self.variable, class) self.variable。{代码完成不工作}

如何使 codecomplete 与“self.*”变量一起工作?

0 投票
1 回答
698 浏览

python - python枕头(更好的PIL)编码检查错误

我刚刚在我的 virtualenv 中安装了一个 Pillow 包。这样做:

我收到一个错误:

事实上,如果你查看官方 gihub 存储库(https://github.com/python-imaging/Pillow/blob/master/PIL/ImageFont.py#L264),你可以看到这个结构:

我的问题是:如何用实际有效的东西替换它?