2013-02-23 2 views
0

다음 두 코드 블록이 서로 다른 결과를 반환하는 이유를 알아야합니다. 나는 가지고있다 :파이썬리스트를 추가하기 위해서는 무엇인가를 정의해야합니까?

somelist = ['foo', 'bar'] 
somelist.append('baz') 
print somelist 

인쇄 ['foo', 'bar', 'baz'] 예상대로. 그러나

print ['foo', 'bar'].append('baz') 

인쇄 None. 미리 감사드립니다!

편집 : 감사합니다. 한 줄의 코드에서 append 함수와 print 명령을 사용할 수 있습니까?

+1

음 ....'.append'는'None'과'print [ 'foo', 'bar']를 반환합니다 .append ('baz')'는'.append'가 반환하는 것을 출력합니다. –

+0

또는 다음 중 하나 : http://stackoverflow.com/questions/1682567/why-does-pythons-list-append-evaluate-to-false – mgilson

답변

2

.append 목록에 돌연변이 목록에 있습니다. 목록에 돌연변이가 있기 때문에 파이썬은 함수가 을 반환해야한다는 규칙을 사용하여 함수의 목적이 인수 (이 경우 메소드가 바인드 된 바운드 목록 인스턴스)를 변경하는 것임을 명시 적으로 명확하게합니다.

2

list.append은 적절한 작업이므로 None을 반환하지만 실제 목록 자체는 변경됩니다.

관련 문제