Python 3의 새로운 기능으로 해결되는 문제는 무엇입니까? [닫은]


18

파이썬 3의 새로운 기능은 다음과 같습니다.

우리는 주로 잘 알려진 성가신 사마귀와 사마귀를 고치고 많은 오래된 주름을 제거합니다.

그것은 무엇이 다른지 (수정)이지만 왜 (문제)가 아닌지를 언급합니다. 나는 무엇이 문제인지 찾지 못했다. 수정 사항으로 해결되는 문제점은 무엇입니까?


1
그러나 제거하지 않은 한 가지 경고는 클래스 메소드에 'self'를 전달 해야하는 이유입니다. 기차를 타십시오.
Rig

답변:


11

나는 즉시 떠오르는 것을 지명 할 것이다.

  • 키워드 전용 인수 : PEP의 이론적 근거에 설명되어 있습니다.
  • nonlocal: 이것 없이는 클로저가 닫힌 변수를 덮어 쓸 수 없습니다. 이것은 데코레이터와 다른 고차 함수에서 때때로 발생합니다. 변경 가능한 객체에 원하는 변경 가능한 상태를 저장하는 유일한 합리적인 해결 방법 (외부 API를 전환하지 않고)은 지나치게 추악합니다.
  • 사전 및 세트 이해 :리스트 이해와 유사한 방식으로 사전 및 세트를 작성하는 것은 생성기 이해를 통해 수행 될 때 덜 예쁘고 약간 느려집니다. 추가 비용없이 적절한 위치에서 이러한 유형을 사용할 수 있습니다. 집합 리터럴, 특히 in테스트 용 Ditto (Python 3.2부터 peephole 최적화 프로그램에 의해 최적화 됨)
  • 8 진 리터럴은 Python 2에 존재하지만이 0777표기법은 익숙하지 않은 사람들에게 함정입니다 (다른 상황에서는 앞에 0을 추가해도 값이나 기본이 변경되지 않음).
  • 이진 리터럴은 16 진 리터럴보다 비트 왜곡에 유용합니다.
  • 바이트 리터럴은 유니 코드 문자열과 바이트 문자열 사이의 강제 구별 및 유니 코드 인 문자열 리터럴의 증상입니다. 이러한 변경으로 인해 텍스트와 해석되지 않은 이진 데이터의 차이점과 인코딩에 대해 생각하게됩니다. 그렇지 않으면 인코딩 관련 오류를 찾기 위해 광범위한 테스트 (영어를 사용하는 유럽 / 미국 중심의 바보가 거의 입력하지 않은 입력으로)가 필요하기 때문입니다.
  • except ex, var-> except ex as var일반적인 오류를 수정합니다 except ValueError, IndexError(두 가지를 모두 잡아야하지만 첫 번째 만 잡아서 IndexError포착 된 예외로 이름 을 덮어 씁니다 ).
  • 포괄적 인 범위 지정 : 네임 스페이스를 오염시키지 말고 생성기 식으로 생각하십시오.
  • 구문과 모듈 제거 : "한 가지 분명한 방법이 있어야합니다." 낡고 혼란스러운 방식으로 고정하는 튜토리얼이 열악한 사람들을 피합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.