我的装饰器更改了我的函数输出,如何避免这种情况?蟒蛇

时间:2018-12-07 01:24:55

标签: python-3.x function decorator

我需要装饰器,该装饰器将从字符串的开头和结尾删除空格(它们的给定类似于函数参数),而我拥有它:

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'

所以我想使它对于任何函数输出都是通用的。 当时,它希望为此功能直接输出:

@decorator
def func1(*strings):
    return strings

1 个答案:

答案 0 :(得分:0)

您要返回列表,而不是字符串。您可以在逗号字符上加入此列表以获取所需的输出:

return ','.join(newstr)