我想使用从print
导入的__future___
打印到文件。我有以下作为导入:
from __future__ import print_function
从现在开始,我可以使用:
进行打印print("stuff", file=my_handle)
但是,我在函数中有很多对print
的调用,所以我希望能够使用关键字参数绑定到my_handle
的函数。所以,我使用部分应用程序:
printfile = partial(print, file=my_handle)
printfile("stuff")
printfile("more stuff")
这就是我的意图。但是,有什么办法可以通过部分应用关键字参数来改变print
本身的定义吗?我试过的是:
print = partial(print, file=my_handle)
然而我得到一个错误说:
UnboundLocalError: local variable 'print' referenced before assignment
有没有办法在不提及我的文件的情况下每次使用print
?
答案 0 :(得分:0)
print = partial(print, file=my_handle)
此行导致第二个print
上的UnboundLocalError,用作partial()
的参数。这是因为在这个特定函数中发现名称print
是一个局部变量---因为你在同一行中分配给它,更常见的是在同一个函数中。您不能在一个函数中使用相同的变量名来有时引用全局变量,有时甚至是本地变量。
要解决此问题,您需要使用其他名称:
fprint = partial(print, file=my_handle)
。