【发布时间】:2010-04-06 21:03:12
【问题描述】:
我正在创建一个公共方法以允许调用者将值写入设备,例如将其称为 write_vals()。
由于这些值将被实时输入,我想通过允许他们输入列表或单个值来简化用户的生活,具体取决于他们需要写入多少个值。例如:
write_to_device([1,2,3])
或
write_to_device(1)
我的函数想使用一个平面列表,所以我想聪明一点,编写如下代码:
input_list = []
input_list.extend( input_val )
当用户输入一个列表时,这很有效,但当用户输入一个整数时,这会很糟糕:
TypeError: 'int' 对象不可迭代
使用 list.append() 会在传入列表时创建一个嵌套列表,这会增加展平的麻烦。
检查传入的对象的类型似乎很笨拙且非pythonic,并希望 list.extend() 接受非可迭代对象让我无处可去。因此也尝试了各种其他编码方法。
非常感谢您提出建议(请仅与编码相关)。
【问题讨论】:
-
当您说用户输入一个列表或单个值时,这是否意味着您将他们的输入作为单个字符串接收?然后你必须将它解析为逗号吗?