【发布时间】:2018-03-14 06:16:38
【问题描述】:
在 Python 中有没有更好的方法来确定函数参数是单个数字还是数字列表。目前我正在对通道控制流使用异常的副作用,但它看起来并不优雅:
def buildPattern( NumberOrList, Framework ):
FinalPattern = '-->'
try:
ListLen = len(NumberOrList)
#if this is a list, program flow will reach this point
I = 0
for Char in Framework:
if Char == 'x':
FinalPattern = FinalPattern + ' ' + str(NumberOrList[I])
I = (I+1) % ListLen
else:
FinalPattern = FinalPattern + ' '
except:
#if we reach this point, we don't have a list... (or some other problem)
for Char in Framework:
if Char == 'x':
FinalPattern = FinalPattern + ' ' + str(NumberOrList)
else:
FinalPattern = FinalPattern + ' '
return FinalPattern
print buildPattern( 3,'x x x x x x x x ' ) #single number call
print buildPattern( [1,3,5], 'x x x x x x x x ' ) #list call
【问题讨论】:
-
如果它是一个单一的 int 就把它放在一个列表中:
if type(NumberOrList) == 'int': NumberOrList = [NumberOrList] -
@jordanm 你写的不是pythonic,甚至不会像你写的那样工作。
标签: python