我正在尝试将文档的一部分分成由&符号分隔的不同组件。这就是我所拥有的:
name,function,range,w,h,k,frac,constraint = str.split(str="&", num=8)
错误:
TypeError: split() takes no keyword arguments
有人可以向我解释错误,并为我提供另一种方法来实现这项工作吗?
答案 0 :(得分:20)
str.split
的参数称为sep
和maxsplit
:
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)
拆分不会获得关键字参数str
或num
。这样做:
name,function,range,w,h,k,frac,constraint = str.split('&', 8)