最近看 python 学习手册遇到个问题

2015-08-25 20:50:30 +08:00
 oska874
最近看 python 学习手册,里面有个例子:
![]( )
其中 myzip 在 2.7 没问题,但是 mymapPad 就有问题,提示错误:
```
File "D:\bdy\pyCode\zipmap.py", line 57
def mymap56 (*args, pad=None ):
^
SyntaxError: invalid syntax
```
看着函数参数的位置不对劲,但是又觉得书已经出到第四版了,应该不会有错啊,就准备发帖子求教大家,突然想拿 3.4 试试,结果成功了,原来那个 pad 是关键字参数。然后我又翻看了一下书,前面根本没有提到是讲 3.x 的内容。

问题来了,有没有专门讲 python 2.x 的书推荐下, 2.x 和 3.x 的混着讲,自己真的吃不消。
2505 次点击
所在节点    Python
8 条回复
zeeler
2015-08-25 20:56:04 +08:00
看官方文档。。。
sivacohan
2015-08-25 21:08:26 +08:00
pad 要写在 *args 前面。
Python2 的参数顺序,*args ,**kwargs 在最后。
omengye
2015-08-25 21:24:33 +08:00
楼上正解
oska874
2015-08-25 21:42:25 +08:00
@omengye
@sivacohan 可是这个例子是 3.0 的。所以我在 2.7 里试了半天都报错,但又不能说是错的
sivacohan
2015-08-25 22:02:58 +08:00
@oska874 2 和 3 的兼容性。我的回复已经告诉你 2 是这样了。你就不知道看看 3 的文档对比一下?
oska874
2015-08-25 22:12:54 +08:00
@sivacohan 我都说了我在 3 正常运行了,二不正常,也说了函数的参数位置在 2 下面不对。
WKPlus
2015-08-25 22:35:45 +08:00
a byte of python 不是就有 2 和 3 的版本么?没有混在一起讲吧
womaomao
2015-08-26 11:15:44 +08:00
函数参数顺序:(普通参数--带默认值参数--可变参数--关键字参数)。可以挑几个,但是顺序必须这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/215954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX