提供 isiterable 函数以检查对象是否可快速迭代以用于生产中的代码的模块。
项目描述
可重复的
isiterable是一个提供isiterable函数的 Python 模块,它充当对象检查器以了解它是否可迭代。它不调用该函数,也没有不受欢迎的性能数字。
可迭代的特点
安装
pip install --upgrade isiterable
用法
from isiterable import isiterable
print(isiterable(57890)) # False
print(isiterable([1, "Hello!"])) # True
与类一起使用
from isiterable import isiterable
class NoIters:
def __init__(self, *args):
self.args = args
def __iter__(self):
# isiterable will return False, Must be a generator :/
return self.args
class YesIters:
def __init__(self, *args):
self.args = args
def __iter__(self):
# Works!
for arg in args:
yield arg
x = YesIters((1, 2))
res = isiterable(x)
print(res) # True
x = NoIters("Hello!")
res = isiterable(x)
print(res) # False
其他例子
>>> from isiterable import isiterable
>>> isiterable(b"\x00\x01...")
True
>>> isiterable(callable)
False
>>> isiterable({"key1": True})
True
>>> isiterable([])
True
可迭代的替代品
如果它与 using 不匹配isiterable,则有一些解决方案您知道哪个更好。
尝试者
这涉及调用__iter__
try:
iter(object)
except TypeError:
pass
拥有者
这将检查对象是否具有属性__iter__
if hasattr(object, "__iter__"):
# ...
基准
这个小型基准测试使用 3 个代码块:
object要传递的论点在哪里
运行benchmark.py将给出与此类似的结果
Running 1,000,000 times each block of code...
Results of isiterable: 0.381
Results of hasiter : 0.777
Results of tryiter : 5.689
最好的结果是isiterabletryiter的结果最差。
项目详情
关
isiterable -1.0.post1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6610d298cd73fdf029ea4a692f64fc7ec241682d12b6bd9096776e94b87d6514 |
|
| MD5 | 438d19bf515754c7a5381a56302e1bfb |
|
| 布莱克2-256 | 8ac9fe8133fd8c93e00e0fc6d67e59abdb2434a47fb7a36305595859c60994fd |
关
isiterable -1.0.post1-cp310-cp310-linux_armv7l.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a49e723e546f2ea65bea27757d7e38e28814f75fc8a9d660ca779a9db4176e24 |
|
| MD5 | bded90e1db8f5ef7bf2bf7885564b11a |
|
| 布莱克2-256 | f2422a5bb640f575b1d6b802067565c93924862df023a0330e98482cc6065167 |