以下代码是本书的一个示例,< Fluent Python>解释Python的ContextManager。
class LookingGlass:
def __enter__(self):
import sys <----- HERE
self.original_write = sys.stdout.write
sys.stdout.write = self.reverse_write
return 'JABBERWOCKY'
def reverse_write(self, text):
self.original_write(text[::-1])
def __exit__(self, exc_type, exc_value, traceback):
import sys <---- HERE
sys.stdout.write = self.original_write
if exc_type is ZeroDivisionError:
print('Please DO NOT divide by zero!')
return True
有两个import sys
语句。为什么他们没有在代码声明之前放置代码?
我移动了代码并进行了测试。但是我没有找到差异。