TypeError:split()在Python 2.x中不带关键字参数

时间:2014-12-15 21:43:56

标签: python string python-2.7 split

我正在尝试将文档的一部分分成由&符号分隔的不同组件。这就是我所拥有的:

name,function,range,w,h,k,frac,constraint = str.split(str="&", num=8)

错误:

TypeError: split() takes no keyword arguments

有人可以向我解释错误,并为我提供另一种方法来实现这项工作吗?

3 个答案:

答案 0 :(得分:20)

str.split的参数称为sepmaxsplit

str.split(sep="&", maxsplit=8)

但是你只能在Python 3.x中使用这样的参数名称。在Python 2.x中,您需要执行以下操作:

str.split("&", 8)

在我看来这两个版本都是最好的,因为使用名称实际上是多余的。 str.split是Python中一个非常着名的工具,因此我怀疑任何Python程序员都无法理解该方法的参数意味着什么。

此外,您应该避免使用户定义的名称与其中一个内置名称相同。这样做会使内置过多,并使其在当前范围内无法使用。所以,除了str之外,我会为你的字符串选择一个不同的名字。

答案 1 :(得分:1)

错误表明您无法向split提供命名参数。你必须只用参数调用split - 没有参数的名称:

name,function,range,w,h,k,frac,constraint = str.split("&", 8)

答案 2 :(得分:1)

拆分不会获得关键字参数strnum。这样做:

name,function,range,w,h,k,frac,constraint  = str.split('&', 8)