传递要迭代的列表参数 -int 不可迭代

passing list argument to be iterated on -int not iterable

我有一个 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 顺便说一句..

非常感谢!

您始终可以使用 try except 语句

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