Каркас: Робот, Язык: Python-3.7.1 Уровень знаний: Новичок
У меня нижеописанный основной метод, который заменяетдинамические позиции при сопоставлении и широко используются в моих существующих сценариях автоматизации.
def querybuilder(self, str, symbol, *args):
count = str.count(symbol)
str = list(str)
i = 0
j = 0
if (count == (len(args))):
while (i < len(str)):
if (str[i] == symbol):
str[i] = args[j]
j = j + 1
i = i + 1
else:
return ("Number of passed arguments are either more or lesser than required.")
return ''.join(str)
Это прекрасно работает, если аргументы отправляются как показано ниже
def querybuilder("~test~123", "~", "foo","boo")
Но если я хотел отправить в виде списка вместо необязательного аргумента, он принимает каждый список / кортеж / массив как один параметр и, следовательно, не попадает внутрь, если условие.
Например: -
i = ["foo", "boo"] -- Optional argument consider it as ('foo, boo',)
ВидимоЯ не могу внести какие-либо изменения в метод (построитель запросов) из-за влияния -ve из-за широкого использования в существующей среде.
От чего я пытался избавиться: -
1, ", ".join("{}".format(a) for a in i,
2, tuple(i),
3, list(i),
4, numpy.array(i) part of import numpy
Любое возможное решение для преобразования параметров в соответствии с требованием?