다음 예제는 함수 호출에서 문자열 함수를 사용하려고 할 때 나타나는 오류를 보여줍니다. 왜 이런 일이 일어나는지에 대한 도움이 필요합니다. 감사. split()
하지만map()에서 문자열 함수를 사용할 수없는 이유는 무엇입니까?
>>> s=["this is a string","python python python","split split split"]
>>> map(split,s)
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
map(split,s)
NameError: name 'split' is not defined
는 내장 기능이지만, 여전히이 오류가 발생합니다?
아! 'split()'은 객체 형 ('string','re'와는 다른)과 관련된 메소드이며 내장 함수가 아니기 때문에 모호성을 제거하기 위해 객체 유형을 지정해야합니다. –
명확하지는 않지만, 문자열 메서드 인''blah'.split ('a') '는'str.split ('blah ','a ')와 동일하고,'instanceofmyclass .mymethod (arg)'는'MyClass.mymethod (instanceofmyclass, arg)'와 동일하다 - 문자열은'str.split'에 대한'self' 인자이다. – lvc
이것은 일종의 추한 것입니다. 차라리 메서드를 메서드처럼 호출하고 싶습니다. 'map (lambda x : x.split(), s)'또는 그 이상, 그냥'[x.split() for x]'로 가라. –