相关疑难解决方法(0)

在Python中,如何确定对象是否可迭代?

有方法isiterable吗?到目前为止我找到的唯一解决方案是打电话

hasattr(myObj, '__iter__')
Run Code Online (Sandbox Code Playgroud)

但我不确定这是多么万无一失.

python iterable

994
推荐指数
14
解决办法
41万
查看次数

作为**解包的映射的python类

如果没有子类化dict,那么类需要被视为一个映射,以便它可以传递给**的方法

from abc import ABCMeta

class uobj:
    __metaclass__ = ABCMeta

uobj.register(dict)

def f(**k): return k

o = uobj()
f(**o)

# outputs: f() argument after ** must be a mapping, not uobj
Run Code Online (Sandbox Code Playgroud)

至少到它抛出缺少映射功能的错误,所以我可以开始实现.

我查看了模拟容器类型,但只是定义魔术方法没有效果,并且使用ABCMeta覆盖并将其注册为dict将断言验证为子类,但是失败是isinstance(o,dict).理想情况下,我甚至不想使用ABCMeta.

python mapping class argument-unpacking

57
推荐指数
2
解决办法
7269
查看次数

标签 统计

python ×2

argument-unpacking ×1

class ×1

iterable ×1

mapping ×1