Hướng dẫn python ellipsis - dấu chấm lửng trăn
Trong văn bản tiếng Anh, bạn có thể sử dụng dấu chấm lửng để chỉ ra rằng bạn sẽ bỏ đi thứ gì đó. Về cơ bản, bạn sử dụng ba dấu chấm ( 3) để thay thế nội dung. Nhưng dấu chấm lửng không chỉ tồn tại trong văn xuôi mà bạn có thể đã thấy ba dấu chấm trong mã nguồn Python. Show
Các hình elip theo nghĩa đen ( 3) đánh giá thành Python từ 5. Vì 5 là hằng số tích hợp, bạn có thể sử dụng 5 hoặc 3 mà không cần nhập nó: 5. Because
5 is a built-in constant, you can use 5 or 3 without importing it:>>>
Mặc dù ba chấm có thể trông kỳ lạ như cú pháp Python, nhưng có những tình huống sử dụng 3 có thể có ích. Nhưng khi nào bạn nên sử dụng 5 trong Python?But when should you use 5 in Python?Tóm lại: Sử dụng dấu chấm lửng như một trình giữ chỗ trong PythonMặc dù bạn có thể sử dụng 3 và 5 hoán đổi cho nhau, nhưng bạn thường chọn 3 trong mã của mình. Tương tự như sử dụng ba dấu chấm bằng tiếng Anh để bỏ qua nội dung, bạn có thể sử dụng dấu chấm lửng trong Python làm trình giữ chỗ cho mã không viết:
Khi bạn chạy 4 và thực thi 5, thì Python chạy mà không phàn nàn:
Không có lỗi nào khi bạn thực hiện một chức năng trong Python chỉ chứa 3 trong cơ thể chức năng. Điều đó có nghĩa là bạn có thể sử dụng dấu chấm lửng làm trình giữ chỗ tương tự như từ khóa 7.
Sử dụng ba chấm tạo ra sự lộn xộn thị giác tối thiểu. Vì vậy, có thể thuận tiện để thay thế mã không liên quan khi bạn chia sẻ các phần của mã trực tuyến. Một thời gian phổ biến khi bạn bỏ qua mã là khi bạn làm việc với các cuống. Bạn có thể nghĩ về các sơ khai như là độc lập cho các chức năng thực sự. Các cuống có thể có ích khi bạn chỉ cần một chữ ký chức năng nhưng không muốn thực thi mã trong thân chức năng. Ví dụ: bạn có thể muốn ngăn chặn các yêu cầu bên ngoài khi bạn đang phát triển một ứng dụng.stubs. You can think of stubs as stand-ins for real functions. Stubs can come in handy when you only need a function signature but don’t want to execute the code in the function body. For example, you’d probably want to prevent external requests when you’re developing an application. Giả sử bạn có một dự án Flask nơi bạn đã tạo bộ đếm khách truy cập của riêng mình trong 8. Hàm 9 được kết nối với cơ sở dữ liệu nơi bạn theo dõi số lượng khách truy cập. Để không tự đếm mình khi bạn kiểm tra ứng dụng của mình ở chế độ gỡ lỗi, bạn có thể tạo một cuống 9:
Bởi vì nội dung của 9 không có vấn đề gì trong trường hợp này, nên bạn nên sử dụng dấu chấm lửng trong cơ thể chức năng. Python gọi 9 mà không có lỗi hoặc tác dụng phụ không mong muốn khi bạn chạy ứng dụng bình của mình ở chế độ gỡ lỗi:
Nếu bạn chạy ứng dụng Flask ở chế độ gỡ lỗi, thì 9 trong dòng 14 đề cập đến cuống của bạn trong dòng 10. Sử dụng 3 trong cơ thể chức năng của 9 giúp bạn kiểm tra ứng dụng của mình mà không có tác dụng phụ.Ví dụ trên cho thấy cách sử dụng cuống ở quy mô nhỏ hơn. Đối với các dự án lớn hơn, các cuống thường được sử dụng trong các bài kiểm tra đơn vị vì chúng giúp kiểm tra các phần của mã của bạn một cách bị cô lập. Ngoài ra, nếu bạn quen thuộc với việc kiểm tra loại trong Python, cuộc nói chuyện về dấu chấm lửng này kết hợp với các cuống có thể rung chuông. Công cụ phổ biến nhất để kiểm tra loại là mypy. Để xác định các loại của thư viện tiêu chuẩn và các định nghĩa thư viện của bên thứ ba, MyPy sử dụng các tệp sơ khai:mypy. To determine the types of the standard library and third-party library definitions, mypy uses stub files:
Bạn có thể truy cập kho lưu trữ được đánh máy Python, và khám phá việc sử dụng 3 trong các tệp sơ khai mà kho lưu trữ này chứa. Khi bạn đi sâu hơn vào chủ đề gõ tĩnh, bạn có thể tìm thấy một trường hợp sử dụng khác của hằng số 5. Trong phần tiếp theo, bạn sẽ học khi sử dụng 3 trong các gợi ý loại.Ellipsis có nghĩa là gì trong gợi ý loại?Trong phần cuối cùng, bạn đã học được rằng bạn có thể sử dụng 5 làm trình giữ chỗ cho các tệp sơ khai của mình, bao gồm cả khi kiểm tra nhập. Nhưng bạn cũng có thể sử dụng 3 trong Gõ gợi ý. Trong phần này, bạn sẽ học cách sử dụng 3 để:type hinting. In this section, you’ll learn how to use 3 to:
Loại gợi ý là một cách tuyệt vời để rõ ràng về các loại dữ liệu mà bạn mong đợi trong mã của mình. Nhưng đôi khi, bạn muốn sử dụng các gợi ý loại mà không hạn chế hoàn toàn cách người dùng của bạn có thể sử dụng các đối tượng. Ví dụ, có lẽ bạn muốn chỉ định một tuple chỉ chứa số nguyên, nhưng số lượng số nguyên có thể tùy ý. Điều đó khi Ellipsis có thể có ích:
Trong dòng 3, bạn xác định một biến, 2, thuộc loại tuple. Biến 2 phải là một tuple chỉ chứa các số nguyên. Tổng số lượng là không quan trọng.Các định nghĩa biến trong dòng 6, 7 và 8 có giá trị vì chúng tuân thủ loại gợi ý loại. Các định nghĩa khác của 2 aren cho phép:
Nếu bạn đã cài đặt MyPy, thì bạn có thể chạy mã với MyPy để liệt kê cả hai lỗi:
Sử dụng 3 trong một gợi ý loại tuple có nghĩa là bạn mong đợi tất cả các mục cùng loại trong bộ tuple.Mặt khác, khi bạn sử dụng nghĩa đen Ellipsis cho các loại có thể gọi được, bạn về cơ bản nâng cao một số hạn chế về cách gọi có thể gọi có thể được gọi, có lẽ về số lượng hoặc loại đối số:callable can be called, perhaps in terms of number or type of arguments:
Trong dòng 12, bạn xác định một tham số có thể gọi, 6. Điều này có thể gọi có thể lấy bất kỳ số và loại đối số nào nhưng phải trả về một số nguyên. Với 7, bạn cũng cho phép một số lượng khác nhau các đối số tùy chọn, miễn là các số nguyên của chúng. Trong cơ thể chức năng của 8 trong dòng 13, bạn gọi 6 có thể gọi được với số nguyên 0 và bất kỳ đối số nào khác được truyền lại.Khi bạn xác định một loại có thể gọi được, bạn phải cho Python biết những loại bạn sẽ cho phép làm đầu vào và loại nào bạn mong đợi có thể gọi được sẽ trở lại. Bằng cách sử dụng 1, bạn nói rằng bạn không quan tâm đến việc có bao nhiêu và loại đối số nào mà có thể gọi được chấp nhận. Tuy nhiên, bạn đã chỉ định rằng nó phải trả về một số nguyên.Các chức năng mà bạn truyền dưới dạng đối số cho 8 trong các dòng 16 và 17 tuân thủ quy tắc bạn đặt. Cả 3 và 4 đều là các thiết bị gọi trả về một số nguyên.Mã trong dòng 20 không hợp lệ vì 5 không thể gọi được. Một người có thể gọi phải là thứ mà bạn có thể gọi, do đó tên.Mặc dù 6 có thể gọi được, nhưng việc sử dụng của nó trong dòng 21 cũng không hợp lệ. Trong dòng 10, bạn đã tạo ra một chuỗi F. Bạn nhận được một chuỗi là giá trị trả về, đó là loại số nguyên mà bạn mong đợi.Trong các ví dụ trên, bạn đã điều tra cách sử dụng nghĩa đen Ellipsis về kiểu gợi ý cho các bộ đếm và vật liệu gọi:
Tiếp theo, bạn sẽ học cách sử dụng 5 với Numpy.Làm thế nào bạn có thể sử dụng dấu chấm lửng để cắt trong numpy?Nếu bạn đã làm việc với Numpy trước đây, thì bạn có thể đã bắt gặp một cách sử dụng khác của 5. Trong Numpy, bạn có thể cắt các mảng đa chiều với nghĩa đen Ellipsis.NumPy before, then you may have come across another use of 5. In
NumPy, you can slice multidimensional arrays with the ellipsis literal.Bắt đầu với một ví dụ mà không tận dụng lợi thế của 5 trong Numpy:>>>
Trong ví dụ này, bạn đã tạo ra một mảng ba chiều bằng cách kết hợp 3 và 4 trong Numpy.Nếu bạn muốn chỉ định các mục đầu tiên của kích thước cuối cùng, thì bạn có thể cắt mảng numpy với sự trợ giúp của ký tự đại tràng ( 5):>>>
Trong ví dụ này, bạn đã tạo ra một mảng ba chiều bằng cách kết hợp 3 và 4 trong Numpy.>>> 0Trong ví dụ này, bạn đã tạo ra một mảng ba chiều bằng cách kết hợp 3 và 4 trong Numpy.>>> 1Trong ví dụ này, bạn đã tạo ra một mảng ba chiều bằng cách kết hợp 3 và 4 trong Numpy.Nếu bạn muốn chỉ định các mục đầu tiên của kích thước cuối cùng, thì bạn có thể cắt mảng numpy với sự trợ giúp của ký tự đại tràng ( 5):Vì $ mypy tuple_example.py tuple_example.py:11: error: Incompatible types in assignment (expression has type "Tuple[int, str]", variable has type "Tuple[int, ...]") tuple_example.py:12: error: Incompatible types in assignment (expression has type "List[int]", variable has type "Tuple[int, ...]") 6 có ba chiều, bạn cần chỉ định ba lát. Nhưng hãy tưởng tượng sự khó chịu của cú pháp sẽ nhận được như thế nào nếu bạn thêm nhiều kích thước! Nó thậm chí còn tệ hơn khi bạn có thể nói với bao nhiêu kích thước mà một mảng có:Trong ví dụ này, bạn đã tạo ra một mảng có thể có tối đa mười chiều. Bạn có thể sử dụng Numpy từ 7 để tìm hiểu có bao nhiêu chiều 6 có. Nhưng trong trường hợp như thế này, sử dụng 3 là một cách tốt hơn:Ở đây, 6 có năm chiều. Bởi vì số lượng kích thước là ngẫu nhiên, đầu ra của bạn có thể trông khác nhau. Tuy nhiên, việc chỉ định mảng đa chiều của bạn với 3 sẽ hoạt động.secondary prompt:>>> 2Trong ví dụ này, bạn đã tạo ra một mảng ba chiều bằng cách kết hợp 3 và 4 trong Numpy.Nếu bạn muốn chỉ định các mục đầu tiên của kích thước cuối cùng, thì bạn có thể cắt mảng numpy với sự trợ giúp của ký tự đại tràng ( 5):Vì 6 có ba chiều, bạn cần chỉ định ba lát. Nhưng hãy tưởng tượng sự khó chịu của cú pháp sẽ nhận được như thế nào nếu bạn thêm nhiều kích thước! Nó thậm chí còn tệ hơn khi bạn có thể nói với bao nhiêu kích thước mà một mảng có:Trong ví dụ này, bạn đã tạo ra một mảng có thể có tối đa mười chiều. Bạn có thể sử dụng Numpy từ $ mypy tuple_example.py tuple_example.py:11: error: Incompatible types in assignment (expression has type "Tuple[int, str]", variable has type "Tuple[int, ...]") tuple_example.py:12: error: Incompatible types in assignment (expression has type "List[int]", variable has type "Tuple[int, ...]") 7 để tìm hiểu có bao nhiêu chiều $ mypy tuple_example.py tuple_example.py:11: error: Incompatible types in assignment (expression has type "Tuple[int, str]", variable has type "Tuple[int, ...]") tuple_example.py:12: error: Incompatible types in assignment (expression has type "List[int]", variable has type "Tuple[int, ...]") 6 có. Nhưng trong trường hợp như thế này, sử dụng # ellipsis_example.py def do_nothing(): ... do_nothing() 3 là một cách tốt hơn:Ở đây, 6 có năm chiều. Bởi vì số lượng kích thước là ngẫu nhiên, đầu ra của bạn có thể trông khác nhau. Tuy nhiên, việc chỉ định mảng đa chiều của bạn với 3 sẽ hoạt động.Numpy cung cấp nhiều tùy chọn hơn để sử dụng 5 để chỉ định một phần tử hoặc một loạt các mảng. Kiểm tra Numpy: 5 ( 3) cho 5 để khám phá thêm các trường hợp sử dụng cho ba chấm nhỏ này.Nếu bạn làm việc với Numpy, thì bạn có thể sử dụng 3 để viết tắt cú pháp cắt của bạn bằng cách thay thế các kích thước có độ dài thay đổi bằng đối tượng 5.Với cú pháp không lộn xộn mà ba dấu chấm cung cấp, bạn có thể làm cho mã của mình dễ đọc hơn.Theo nguyên tắc thông thường, bạn có thể nhớ rằng bạn thường sử dụng Python từ 5 để bỏ qua mã.Một số thậm chí có thể nói rằng dấu chấm lửng có thể làm cho mã không đầy đủ trông dễ thương |