Моя функция с * args переделывает только первый аргумент python, но мне нужно, чтобы они все были переделаны - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно написать декоратор, который удаляет пробелы из начала и конца полос, которые задаются как аргументы другой функции.Сначала я пытался написать только функцию, использующую strip, но она переделывает только первый аргумент, когда они мне нужны.join необходимо, потому что без него функция возвращает кортеж.

def NewFunc(*strings):
    newstr = ' '.join([str(x) for x in strings])
    return newstr.strip()

print(NewFunc('         Anti   ', '     hype   ', '   ajou!   '))

и возвращает: Anti hype ajou!

, когда мне нужно: Anti hype ajou!

что изменить?

1 Ответ

0 голосов
/ 27 ноября 2018

strip удаляет только начальные и конечные пробелы, и вы только strip проверяете окончательный результат.Вы должны strip каждый элемент перед join их использованием, и это можно сделать в понимании списка:

def NewFunc(*strings):
    newstr = ' '.join([str(x).strip() for x in strings])
    return newstr

str(x) немного ненужно, но я не знаю, возможноВы собираетесь пройти в int с или что-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...