Мой декоратор изменил вывод моей функции, как этого избежать?питон - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужен декоратор, который удалит пустые места из начала и конца строк (они даны как параметр функции), и у меня есть это:

def decorator(function):
    def someFunc(*strings):
        function(*strings)
        newstr = []
        for x in strings:
            newstr.append(str(x).strip())
        return newstr
    return someFunc

, и давайте представим, что я буду использовать функцию:

@decorator
def myFun(*args):
    str = ""
    for i in args:
        str = str + i
    return str
print(myFun("  aaaa  ", "   bbbb   ", "   ccccc   "))

вывод:

['aaaa', 'bbbb', 'ccccc']

но мне нужно:

'aaaa,bbbb,ccccc'

Так что я хочу сделать его универсальным для любой функции вывода.И в то время, когда вы хотите, чтобы он выводил прямо для этой функции:

1 Ответ

0 голосов
/ 07 декабря 2018

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

return ','.join(newstr)
...