我正在实现decorators并试图获得输出
有人能解释一下为什么.format(i for i in args)
不遍历John
和Tom
,而是打印变量args
的位置吗
def doDouble (func):
def wrapper_doDouble (*args):
func(*args)
func(*args)
return wrapper_doDouble
@doDouble
def functionToPrint(*args):
print ("Hi {}".format(i for i in args))
functionToPrint("John", "Tom")
这是我的电流输出:
Hi <generator object functionToPrint.<locals>.<genexpr> at 0x03CEFD80>
Hi <generator object functionToPrint.<locals>.<genexpr> at 0x03CDA1B0>
问题不在装修工身上。它在
format
中。你知道吗只打印“john”,因为您只使用格式化字符串中的第一个参数。换成eg
您的内联for循环位于稍微错误的位置。您希望反复调用
Hi
格式,而不是将列表传递给Hi
。因为这将生成多个值,所以需要将它们重新组合在一起。你知道吗相关问题 更多 >
编程相关推荐