So với các ngôn ngữ như Perl, Python có số lượng cấu trúc điều khiển hạn chế:
- chỉ
if
và không unless
,
- chỉ
for
điều đó lặp đi lặp lại theo trình tự và không foreach
hoặc kiểu C for
,
- chỉ
while
kiểm tra một điều kiện mỗi vòng lặp và không do-while
,
- chỉ
if-elif
và không switch
,
- chỉ có một cấu trúc nhận xét
#
, và cho mỗi dòng bạn có thể biết liệu nó có được nhận xét hay không, mà không cần nhìn vào các dòng trước đó.
Ngoài ra, có gần một cách để thụt lề nguồn của bạn; hầu hết các trường hợp thụt sáng tạo được loại trừ về mặt cú pháp.
Điều này làm cho việc phân tích một nguồn Python dễ dàng hơn cho con người.
Có những nỗ lực để được tối thiểu nhưng đầy đủ trong các loại tích hợp và thư viện chuẩn.
- đối với danh sách có thể thay đổi, bạn sử dụng loại tích hợp duy nhất
list
; đó là O (1) cho hầu hết các hoạt động và bạn không bao giờ phải chọn thực hiện đúng,
- Đối với các danh sách bất biến, bằng nhau, bạn chỉ cần sử dụng
tuple
loại,
- đối với bản đồ, bạn sử dụng công cụ tích hợp duy nhất có
dict
hiệu quả trong hầu hết các trường hợp, không cần phải suy nghĩ về việc sử dụng triển khai nào.
Python 3 mở rộng điều này cho các số nguyên: cho dù số nguyên của bạn lớn đến đâu, bạn vẫn sử dụng cùng loại và không bao giờ quan tâm đến việc ép buộc.
Python cố gắng tránh đường cú pháp. Nhưng đôi khi nó thêm đường cú pháp chỉ để làm cho cách rõ ràng rõ ràng. Bạn có thể viết if foo is not None
thay if not (foo is None)
vì bởi vì 'không' là đặc biệt. Vẫn foo is not None
đọc dễ dàng, không thể bị hiểu sai, và bạn không cần phải suy nghĩ, bạn chỉ cần viết điều rõ ràng.
Tất nhiên, hầu hết những điều phức tạp hơn trong Python có thể được thực hiện theo nhiều cách. Bạn có thể thêm các phương thức vào các lớp bằng cách khai báo hoặc bằng cách gán vị trí đơn giản, bạn có thể chuyển các đối số cho các hàm theo một số cách sáng tạo, v.v. Điều đó chỉ vì phần bên trong của ngôn ngữ hầu hết được phơi bày.
Điều quan trọng là luôn có một cách được dự định là tốt nhất, bao gồm tất cả. Nếu các cách khác tồn tại, chúng không được thêm vào như là các lựa chọn thay thế bằng nhau (như if
và unless
) mà chỉ phơi bày các hoạt động bên trong. Dần dần nhưng dần dần các lựa chọn thay thế như vậy đã bị lỗi thời (không bị loại bỏ!) Bằng cách tăng cường cơ chế tốt nhất được biết đến.
Trang trí bọc chức năng gọi AOP. Trước 2.6 bạn phải sử dụng __metaclass__
thành viên ma thuật để khai báo siêu dữ liệu của một lớp; bây giờ bạn cũng có thể sử dụng cú pháp trang trí tương tự cho việc này. Trước 3.0, bạn có hai loại chuỗi, định hướng byte và Unicode, mà bạn có thể vô tình trộn lẫn. Bây giờ bạn chỉ có Unicode str
và nhị phân duy nhất trong suốt bytes
mà bạn không thể nhầm lẫn.
"""
bình luận (tài liệu). Những khoảng này nhiều dòng.