我读过一篇关于 AsyncIO 的文章并注意到了一些事情。这是那篇文章的代码:
#!/usr/bin/env python3
# countasync.py
import asyncio
async def count():
print("One")
await asyncio.sleep(1)
print("Two")
async def main():
await asyncio.gather(count(), count(), count())
if __name__ == "__main__":
import time
s = time.perf_counter()
asyncio.run(main())
elapsed = time.perf_counter() - s
print(f"{__file__} executed in {elapsed:0.2f} seconds.")
为什么import time
声明后if __name__ == "__main__"
不在文件开头?根据PEP8 “导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前”。据我所知,有一些奇怪的包(例如在 Twisted 中),您应该在某个特殊的地方导入它们。但是作者为什么放在import time
这里呢?有什么意义吗?