抑制字符串的迭代处理

抑制字符串的迭代处理,第1张

抑制字符串的迭代处理

不幸的是,没有任何方法可以自动执行此 *** 作。您提出的解决方案(

str
不可迭代的子类)遭受与
isinstance()
…相同的问题,即,您必须记住在使用字符串的任何地方都使用它,因为无法使Python代替它来使用它。本机类。当然,您不能用猴子修补内置对象。

我可能建议,如果您发现自己编写的函数使用可迭代的容器 字符串,则可能是您的设计有问题。但是有时您无法避免。

在我看来,最不麻烦的事情是将检查放入函数中,并在进入循环时调用该函数。至少这会将行为更改放在您最有可能看到的位置:在

for
语句中,不要埋藏在班级的某个地方。

def iterate_no_strings(item):    if issubclass(item, str):   # issubclass(item, basestring) for Py 2.x        return iter([item])    else:        return iter(item)for thing in iterate_no_strings(things):    # do something...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5653980.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存