gpt4 book ai didi

Python 扩展返回对象礼仪

转载 作者:太空宇宙 更新时间:2023-11-04 07:48:22 25 4
gpt4 key购买 nike

我正在编写一个 python 扩展来提供对 Solaris kstat 数据的访问(本着与运输 perl 库 Sun::Solaris::Kstat 相同的精神),我有一个关于有条件地返回列表或单个对象的问题。 python 用例看起来像:

    cpu_stats = cKstats.lookup(module='cpu_stat')    cpu_stat0 = cKstats.lookup('cpu_stat',0,'cpu_stat0')

按照目前的实现方式,lookup() 返回所有匹配的 kstat 对象的列表。第一种情况会产生对象列表(与 CPU 一样多),第二种调用完全指定单个 kstat 并返回包含一个 kstat 的列表。

我的问题是当只有一个匹配项时返回单个对象,而当有多个匹配项时返回列表是一种糟糕的形式吗?

感谢您的周到解答!我的 python-fu 很弱,但由于像你这样的人而变得更强。

最佳答案

“我的问题是,当只有一个匹配项时返回单个对象,而当有多个匹配项时返回列表,这是一种糟糕的形式吗?”

返回不一致的类型是一种糟糕的形式。

返回一个一致的类型:kstat列表。

大多数 Pythonista 不喜欢使用 type(result) 来确定它是一个 kstat 还是一个 kstat 列表。

我们宁愿以一种简单、一致的方式检查列表的长度。

此外,如果长度取决于一条系统信息,也许 API 方法可以提供此元数据。

DB-API PEP有关如何处理类似查询的事情的建议和想法。

关于Python 扩展返回对象礼仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com