
# Python语言的函数从V1版本迁移到V2版本时需注意哪些兼容性问题？
1. args的区别
   V1使用的语法：
   ```
   args = parser.parse_args()
   ```
   如果迁移到V2，需修改为：
   ```
   args = parser.parse_args(args=[])
   ```
   因为V1和V2 python runtime的sys.argv结构不同。
   V2是\['/home/snuser/runtime/python3.6/server.py', '127.0.0.1:31536', '/opt/function/code'\]，比v1多了后面2个参数。
   
2. asyncio的区别
   V1使用的语法：
   ```
   loop = asyncio.get_event_loop()
   loop.run_until_complete(func(arg1, arg2))
   loop.close()
   ```
   如果迁移到V2，需修改为：
   ```
   loop_tmp = asyncio.new_event_loop()
   asyncio.set_event_loop(loop_tmp)
   loop = asyncio.get_event_loop()
   loop.run_until_complete(func(arg1, arg2))
   loop.close()
   ```
   因为asyncio.get_event_loop()是从OS线程（主线程）获取当前事件循环，而V2的Python runtime不是在主线程运行用户函数，所以函数内asyncio.get_event_loop()会抛出RuntimeError。
   V2使用asyncio需要新建并设置事件循环。
   
 
