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

时间:2016-08-02 16:38:57

标签: python list int iterable

我有一个python函数,需要将一个arbirary字节数写入总线:

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 btw上使用Python3 ..

非常感谢!

1 个答案:

答案 0 :(得分:1)

您始终可以使用try except声明

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