2014-12-15 2 views
9

문서의 섹션을 앰퍼샌드로 구분 된 다른 구성 요소로 분리하려고합니다.TypeError : split()에 키워드 인수가 없습니다.

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

오류 :

TypeError: split() takes no keyword arguments 

누군가가 나에게 오류를 설명하고 또한 나를이 일을하기 위해 다른 방법을 제공 할 수 있습니다를이 내가 가진 무엇인가? str.split

답변

15

매개 변수는 sepmaxsplit라고 :

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

을하지만 당신은 단지 파이썬 3.x에서이 같은 매개 변수 이름을 사용할 수 있습니다 Python 2.x에서는 다음을 수행해야합니다.

str.split("&", 8) 

제 생각에는 이름을 사용하는 것이 실제로 중복되기 때문에 두 버전 모두에서 가장 좋습니다. str.split은 파이썬에서 매우 잘 알려진 도구입니다. 그래서 어떤 파이썬 프로그래머가이 방법의 논점이 무엇인지 이해하는 데 어려움을 겪을 것입니다.

또한 사용자 정의 이름을 기본 제공 이름 중 하나와 동일하게 만들지 마십시오. 이렇게하면 내장 기능이 흐려져 현재 범위에서 사용할 수 없게됩니다. 그래서 str 외에 다른 문자열을 선택하겠습니다.

+0

이름을 지정할 이유가 없을뿐만 아니라 실제로는 doc이 사용하는 이름 인'sep'와'maxsplit'을 사용하십시오. 따라서 오류 메시지에는 "* no * keyword arguments"가 표시됩니다. – jez

+0

허. 3.x에서 작동하기 때문에 2.x에서도 작동 할 것이라고 생각했습니다. 업데이트 됨. – iCodez

+1

'str.split' *은 언 바운드 (unbound) 메소드로 존재하기 때문에 새로운 사용자가'str'이라는 이름을 사용하지 않도록 혼란스럽게하는 것이 특히 중요합니다. 나는 OP가 "오, str.split()을 사용해야한다"고 말했고, * 틀렸지 만 잘못 취해질 수 있기를 기대합니다. – jez

1

split에 명명 된 인수를 제공 할 수 없다는 오류가 표시됩니다. 당신은 방금 인수 split 전화를해야 - 인수의 이름없이 :

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

분할 키워드 인수 str 또는 num를 얻을 수 나던. 대신 다음을 수행하십시오 :

관련 문제