【发布时间】:2016-07-20 22:30:07
【问题描述】:
获取这个main.py:
from __future__ import print_function
from sub import print
print("hello, world")
还有这个sub.py:
from __future__ import print_function
def print(*args, **kwargs):
return __builtins__.print(*args, **kwargs)
使用 Python 2.7.9,运行 main.py,你会得到:
Traceback (most recent call last):
File "main.py", line 5, in <module>
print("hello, world")
File "/Users/ien/Studio/songifier/sub.py", line 4, in print
return __builtins__.print(*args, **kwargs)
AttributeError: 'dict' object has no attribute 'print'
为什么以及如何做到这一点?
注意:这是一个用于隔离问题的人为示例,它出现在日志记录上下文中,print 函数有时会执行一些花哨的日志记录,而其他时候只想调用内置的打印函数。
【问题讨论】:
标签: python