我想知道最Python的方式是检查函数输入是字符串还是列表。我希望用户能够输入字符串列表或字符串本身。
def example(input):
for string in input:
#Do something here.
print(string)
显然,这将在输入字符串列表中起作用,但如果输入是单个字符串则无效。最好的办法是在函数本身中添加类型检查吗?
def example(input):
if isinstance(input,list):
for string in input:
print(input)
#do something with strings
else:
print(input)
#do something with the single string
谢谢。
答案 0 :(得分:0)
您的代码很好。但是,您提到的列表应该是字符串列表:
if isinstance(some_object, str):
...
elif all(isinstance(item, str) for item in some_object): # check iterable for stringness of all items. Will raise TypeError if some_object is not iterable
...
else:
raise TypeError # or something along that line
Check if input is a list/tuple of strings or a single string
答案 1 :(得分:0)
第二种方法很好,除了如果重要的话,它应该使用print(string_)
而不是print(input)
,
def example(input):
if isinstance(input,list):
for string_ in input:
print(string_)
#do something with strings
else:
print(input)
#do something with the single string
example(['2','3','4'])
example('HawasKaPujaari')
输出:
2
3
4
HawasKaPujaari