Perl과 같은 언어와 비교하여 Python에는 제한된 수의 제어 구문이 있습니다.
- 단지
if
없고 unless
,
- 단지
for
그 순서없이 반복 해 foreach
또는 C 스타일 for
,
- 단지
while
그 모든 루프없이 검사 조건 do-while
,
- 단지
if-elif
없고 switch
,
- 주석 구성은 하나 뿐이며
#
모든 행에 대해 이전 행을 보지 않고 주석 처리되었는지 여부를 알 수 있습니다.
또한 소스를 들여 쓰는 방법은 거의 한 가지가 있습니다. 창조적 들여 쓰기의 대부분의 경우는 구문 상으로 제외됩니다.
이를 통해 인간은 파이썬 소스를 더 쉽게 파싱 할 수 있습니다.
기본 제공 유형과 표준 라이브러리에서는 최소한의 완성 시도가 있습니다.
- 가변 목록의 경우 유일한 내장
list
유형 을 사용하십시오 . 대부분의 작업에서 O (1)이므로 올바른 구현을 선택할 필요가 없습니다.
- 불변 목록의 경우 마찬가지로
tuple
유형 만 사용하면 됩니다.
- 지도의
dict
경우 대부분의 경우 가장 효율적인 내장 기능 을 사용하므로 사용할 구현을 숙고 할 필요가 없습니다.
파이썬 3은 이것을 정수로 확장합니다 : 정수의 크기에 관계없이 동일한 유형을 사용하고 강제에 신경 쓰지 않습니다.
파이썬은 구문 설탕을 피하려고 시도합니다. 그러나 때로는 명백한 방법을 분명히하기 위해 구문 설탕을 첨가합니다. 'is not'이 특수한 경우가 아니라 if foo is not None
대신 쓸 수 있습니다 if not (foo is None)
. 여전히 foo is not None
쉽게 읽을 수 있고, 잘못 해석 될 수 없으며, 생각할 필요가 없습니다. 단지 명백한 것을 쓰면됩니다.
물론 파이썬에서 가장 복잡한 작업은 여러 가지 방법으로 수행 할 수 있습니다. 선언이나 간단한 슬롯 할당으로 클래스에 메소드를 추가 할 수 있으며, 여러 가지 창의적인 방식으로 함수에 인수를 전달할 수 있습니다. 이는 언어의 내부가 대부분 노출되기 때문입니다.
핵심은 항상 최선의 방법이 될 수있는 한 가지 방법이 있다는 것입니다. 다른 방법이있는 경우, 그들은 (같은 동일한 대안으로 추가되지 않은 if
과 unless
)하지만 단지 내부 동작에 노출됩니다. 알려진 최선의 메커니즘을 향상시킴으로써 느리지 만 꾸준히 그러한 대안이 폐기된다 (제거되지 않음).
데코레이터는 AOP 함수 호출을 래핑합니다. 2.6 이전에는 __metaclass__
매직 멤버 를 사용 하여 클래스의 메타 클래스를 선언해야했습니다. 이제 동일한 데코레이터 구문을 사용할 수도 있습니다. 3.0 이전에는 바이트 지향 문자열과 유니 코드라는 두 가지 종류의 문자열이 있었지만 실수로 섞을 수있었습니다. 이제 유일한 유니 코드 str
와 유일한 바이너리 투명성 bytes
이 있습니다. 실수로 혼합 할 수 없습니다.
"""
주석 (docstring)을 잊지 마십시오 . 이들은 여러 줄에 걸쳐 있습니다.