【问题标题】:passing list argument to be iterated on -int not iterable传递要在 -int 上迭代的列表参数不可迭代
【发布时间】:2016-12-08 03:24:32
【问题描述】:

我有一个 python 函数需要将任意数量的字节写入总线:

def Writebytes(self,values):
    for byte in values:
        self.writebyte(byte)

这个想法是你传递一个字节列表并将它们全部写入总线,例如

data=[0x10,0x33,0x14]
object.Writebytes(data)

我想支持不带 [ ] 的单字节写入,以便您可以输入:

data=0x00
object.Writebytes(data)

旨在简化使用。但是,您不能遍历传递给 Writebytes 的 int。有没有一种简单的方法可以强制输入始终是一个列表? (最好在函数定义中..)

在我使用 Python 的第一周,所有这些可迭代的东西对我来说都是新的(这实际上进展得很好,这要归功于 Python)。顺便说一句,我主要在 RPi 上使用 Python3 ..

非常感谢!

【问题讨论】:

    标签: python list int iterable


    【解决方案1】:

    您始终可以使用try except 语句

    def Writebytes(self,values):
        try:
            for byte in values:
                self.writebyte(byte)
        except TypeError:
            self.writebyte(values)
    

    【讨论】:

    • 感谢您的建议 - 这似乎是一种巧妙的解决方法。正如你所提到的,我可以看到它很健壮。感谢您的建议 - 非常感谢。
    猜你喜欢
    • 2019-12-03
    • 2023-03-07
    • 1970-01-01
    • 2019-07-05
    • 2010-09-16
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多