我正在读这个
http://docs.python.org/dev/library/multiprocessing.html
特别是这个
p = multiprocessing.Process(target=time.sleep, args=(1000,))
Run Code Online (Sandbox Code Playgroud)
我试过同样的事情,但是如果我在1000之后删除","它就不起作用了.所以我的问题是在这种情况下args =(1000,)背后的语义是什么?如果我用逗号而不是有什么区别?
p/s:我认为这是一个根本问题,如果有可能有人指出我可能会进一步阅读吗?谢谢.
谢谢.
问候,安迪.
Chr*_*per 11
如果你只是说(1000),Python假设你只是将表达式评估为数学,因此它被简化为1000.想想结果5 + (1000) + 4.
正如上面的表达式将被简化为1009,一旦简化了一下,这就是你的行看起来像:
p = multiprocessing.Process(target=time.sleep, args=1000)
Run Code Online (Sandbox Code Playgroud)
你可以看到这根本不是一回事.args应该是一个参数元组,而不是一个整数.
如果你放(1000,),Python可以告诉你正在寻找一个只包含一个元素的元组,因为该表达式可以与简单的算术表达式区分开来,所以你最终会传递正确的东西.
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |