Dấu chấm lửng Trăn

Là một nhà phát triển Python dày dạn kinh nghiệm, bạn có thể đã gặp đối tượng dấu ba chấm ... trong Python. Nếu bạn cố in cái này trong trình thông dịch Python, nó sẽ hiển thị dấu chấm lửng

Hướng dẫn này sẽ chứng minh việc sử dụng đối tượng dấu chấm lửng trong Python

Sử dụng dấu ba chấm làm trình giữ chỗ cho mã chưa viết

Đối tượng dấu chấm lửng có thể được sử dụng theo nhiều cách khác nhau. Nó chủ yếu hoạt động như một trình giữ chỗ cho mã chưa viết

Giả sử chúng ta làm việc trong một nhóm và cần định nghĩa các hàm và lớp. Chúng tôi định nghĩa các chức năng và lớp nhưng không chắc chắn về mã, vì vậy chúng tôi đặt dấu ba chấm (dấu chấm lửng) tại chỗ

Điều này sẽ ngăn trình thông dịch Python đưa ra bất kỳ ngoại lệ nào

Xem mã dưới đây

def fun():
    ...
print("Use of ellipsis.")

đầu ra

Ví dụ trên cho thấy rằng chúng ta đặt đối tượng dấu chấm lửng làm trình giữ chỗ cho mã chưa viết trong phương thức fun()

Sử dụng Dấu chấm lửng để Thay thế cho Từ khóa pass

Từ khóa pass được sử dụng trong Python khi chúng ta muốn thêm một dòng mã nhưng không muốn thực thi bất cứ điều gì. Do đó, nó được sử dụng làm trình giữ chỗ cho mã chưa viết

Như đã thảo luận, chúng ta có thể sử dụng đối tượng dấu chấm lửng làm trình giữ chỗ cho mã chưa viết;

Chúng ta có thể thấy điều này trong ví dụ sau

def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")

đầu ra

Ví dụ trên cho thấy rằng hai hàm đã sử dụng pass và dấu chấm lửng làm trình giữ chỗ cho mã chưa viết, chứng minh rằng chúng ta có thể thay thế pass bằng đối tượng

def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
0

Sử dụng dấu ba chấm trong việc cắt mảng nhiều chiều def fun1(): ... def fun2(): pass print("Use of ellipsis.") 1

Một công dụng quan trọng khác của đối tượng này là cắt lát

Cắt lát đề cập đến kỹ thuật trích xuất các phần của các phần tử từ một đối tượng dựa trên chỉ mục của chúng. Nó được thực hiện trong ngoặc vuông

Ta cũng có thể thực hiện slice trên mảng nhiều chiều nhưng cần lưu ý tổng số chiều trong mảng. Dấu chấm lửng có thể được sử dụng làm trình giữ chỗ trong biểu thức lát cắt để bỏ qua thứ nguyên đã cho

Hãy xem xét đoạn mã sau

import numpy as np
arr = np.array([[7,5,2,3],[1,8,9,2],[3,2,1,0]])
print(arr[ :,2])
print(arr[...,2])

đầu ra

Trong ví dụ trên, hãy lưu ý cách trả về cùng một kết quả cho các biểu thức cắt khác nhau. Dấu chấm lửng như một trình giữ chỗ trong biểu thức lát cắt rất hữu ích

Biểu thức

def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
2 có thể được chuyển đổi thành
def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
3 cho mảng hai chiều,
def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
4 cho mảng ba chiều, v.v.

Sử dụng Dấu chấm lửng cho Gợi ý Loại

Trong Trăn 3. 5 trở lên, một cách sử dụng khác cho đối tượng đơn lẻ này đã được giới thiệu

Gợi ý kiểu cho phép chúng ta khai báo kiểu cho biến, tham số và giá trị trả về. Chúng ta có thể sử dụng dấu chấm lửng trong gợi ý kiểu để chỉ cung cấp một phần của kiểu

Chúng ta có thể sử dụng nó như

def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
5,
def fun1():
    ...

def fun2():
    pass

print("Use of ellipsis.")
6, v.v. để giúp gõ gợi ý

Phần kết luận

Để kết thúc, chúng ta đã thảo luận về đối tượng dấu chấm lửng trong Python và công dụng của nó. Nó thường được sử dụng làm trình giữ chỗ cho mã chưa viết trong các hàm và lớp

Chúng tôi cũng có thể sử dụng nó như một trình giữ chỗ trong việc cắt để bỏ qua nhiều thứ nguyên. Trăn 3. 5 đã giới thiệu một cách mới để sử dụng dấu chấm lửng trong gợi ý kiểu

Lúc đầu, tôi nghĩ nó chỉ là một loại mã giả. Trong Python, bạn thường sử dụng từ khóa

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 để điền vào một hàm (hoặc ít nhất là một cái gì đó được thụt lề), điều này vẫn chưa được triển khai đầy đủ. suy nghĩ của tôi là một phần như sau. "À, ai đó muốn chỉ ra rằng có nhiều mã hơn đang theo sau, nhưng mã này bị cắt bớt ở đây, để hiểu ý. " Do đó, sử dụng từ khóa
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 có nghĩa là điều gì đó chưa được triển khai. Tại thời điểm này, tôi không nghĩ nhiều về nó nữa nhưng đôi khi tự mình sử dụng nó để giải thích một khái niệm nào đó cho đồng nghiệp

Vài tuần sau, tôi tình cờ tìm thấy nó lần nữa và lần này, nó nằm trong một ví dụ mã đang chạy. Tôi tò mò và muốn tìm hiểu xem đây thực sự là một tính năng ngôn ngữ hay chỉ là tác dụng phụ của một thứ khác. Hóa ra đó là lần đầu tiên tôi chủ động xác định đối tượng dấu chấm lửng của Python

Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về đối tượng dấu chấm lửng, nơi bạn có thể sử dụng nó trong cuộc sống hàng ngày của mình với tư cách là một lập trình viên và các gói Python nổi tiếng nào sử dụng nó

Thông tin

Mã được trình bày trong bài viết này được viết cho Python 3. 9 (CPython)

Thông tin chung

Trước khi chúng ta chuyển sang các trường hợp sử dụng có thể, trước tiên chúng ta hãy tìm hiểu xem đối tượng dấu chấm lửng là gì. Về bản chất, nó là một hằng số tích hợp sẵn [] như

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
3 và
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
4

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis

Nói chính xác hơn,

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
5 là hằng số tích hợp sẵn và
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
6 (ba dấu chấm) là hằng số tương ứng. Bạn cũng có thể tìm thấy nó dưới dạng mã thông báo được xác định trong Lib/token. py []

# previous code in token.py
ELLIPSIS = 52
# subsequent code in token.py

Tài liệu nói rằng đối tượng dấu chấm lửng là một "[s]giá trị đặc biệt được sử dụng chủ yếu cùng với cú pháp cắt mở rộng cho các loại dữ liệu vùng chứa do người dùng xác định. " [] Tuy nhiên, tôi chưa xác định được trường hợp sử dụng lát cắt mặc dù đã sử dụng gói bên thứ ba NumPy []. Đối với tôi, nó có vẻ là một nghĩa đen "bất cứ điều gì". Như đã nói, nếu bạn có một chức năng hoặc lớp nhất định mà bạn muốn triển khai một tính năng đặc biệt và tìm kiếm một nghĩa đen không được sử dụng, thì đối tượng dấu chấm lửng có thể phù hợp với bạn. Bạn sẽ thấy điều đó trong một

Loại chú thích

Không cần nghiên cứu thêm, tôi đã sớm xác định được một tình huống mà tôi đã sử dụng đối tượng dấu chấm lửng. Nhập chú thích. Để minh họa khái niệm này, giả sử chúng ta có một hàm, hàm này không nhận đối số nào và trả về một bộ

def return_tuple() -> tuple:
    pass

Nếu bạn muốn cung cấp thêm thông tin cho người dùng hàm, bạn cũng có thể chỉ định bộ dữ liệu chứa gì. Chẳng hạn, nó có thể trả về một bộ gồm hai số nguyên

def return_tuple() -> tuple[int, int]:
    pass

Thông tin

Sử dụng

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
7 làm chú thích loại không được hỗ trợ trước Python 3. 9. Trong các phiên bản cũ hơn của Python, bạn cần sử dụng
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
8 từ mô-đun
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
9 hoặc nhập
# previous code in token.py
ELLIPSIS = 52
# subsequent code in token.py
0

Bạn sẽ chú thích một bộ số nguyên như thế nào, có thể có bất kỳ độ dài nào lớn hơn 0?

def return_tuple() -> tuple[int, ...]:
    pass

Nhưng chờ đợi, có nhiều hơn nữa. Giả sử bạn có một hàm trả về một giá trị có thể gọi được. Nếu chữ ký của cái có thể gọi được, đang được trả về, có thể thay đổi, bạn có thể sử dụng đối tượng dấu chấm lửng để chỉ ra điều này

from typing import Callable

def return_callable() -> Callable[..., int]:
    pass

Đoạn mã đã cho có nghĩa là một hàm có thể gọi được với chữ ký không xác định được trả về, nhưng kiểu trả về của hàm có thể gọi được chỉ định. Nó là một số nguyên

Tuyệt. Tại thời điểm này, chúng tôi đã xác định được tình huống đầu tiên, nơi chúng tôi có thể sử dụng đối tượng dấu chấm lửng trong mã Python của mình. Hãy xem làm thế nào chúng ta có thể hưởng lợi từ nó khi triển khai các lớp và chức năng

Thay thế Drop-in cho Pass-Keyword

Trong , đã có gợi ý rằng đối tượng dấu chấm lửng cũng có thể được sử dụng làm từ khóa thay thế cho từ khóa

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1. Hãy nhớ rằng từ khóa
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 được sử dụng nếu bạn muốn định nghĩa một hàm, lớp, vòng lặp for hoặc thứ gì đó tương tự nhưng chưa muốn triển khai nó. Bởi vì cú pháp Python yêu cầu thụt đầu dòng sau các cấu trúc này, nên từ khóa
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 được sử dụng để một mặt đáp ứng Python và mặt khác, vì bạn chưa cần triển khai nó. Đây là một ví dụ

def my_function():
    pass

Về bản chất, ngay cả từ khóa

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 cũng không bắt buộc. Bạn chỉ cần viết ra một biểu thức. Đây có thể là một số

def my_function():
    1

hoặc dấu chấm lửng

def my_function():
    ...

Cá nhân tôi thích sử dụng từ khóa

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 để chỉ ra rằng điều gì đó được triển khai chính xác theo cách tôi muốn. Một ví dụ sẽ tạo một ngoại lệ tùy chỉnh mà không cần thêm chi tiết

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
0

Mặt khác, việc sử dụng đối tượng dấu chấm lửng có thể chỉ ra rằng một chức năng nào đó chưa được thực hiện đầy đủ, nhưng việc nêu ra một ngoại lệ

# previous code in token.py
ELLIPSIS = 52
# subsequent code in token.py
6 dường như là quá mức cần thiết. Để tóm tắt. Có, nó có thể được sử dụng để thay thế cho từ khóa
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1, nhưng có lẽ bạn không nên làm điều đó, bởi vì có một lý do tại sao mọi người sử dụng
>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1. Tuy nhiên, sử dụng nó trong các bài báo để chỉ ra các dòng mã tiếp theo sẽ ổn thôi

Đối tượng Ellipsis trong tự nhiên

Như đã nêu trước đó, nếu bạn muốn triển khai một tính năng nhất định mà bạn cần một nghĩa đen không được sử dụng, bạn có thể sử dụng đối tượng dấu chấm lửng. Typer [] - gói để triển khai giao diện dòng lệnh - và FastAPI [] (khung web) là những ví dụ nổi bật sử dụng nó. Trong FastAPI, nó được sử dụng để tạo các tham số bắt buộc [] và trong Typer, nó khá giống nhau. Nó chỉ ra rằng một đối số dòng lệnh là bắt buộc []

Vì vậy, nếu bạn thấy mình trong tình huống đang phát triển một công cụ hoặc thư viện mới và cần một trình giữ chỗ theo nghĩa đen, hãy nhắc nhở bản thân về đối tượng dấu chấm lửng

Bản tóm tắt

Xin chúc mừng, bạn đã thực hiện nó thông qua bài viết. Trong bài viết này, bạn đã biết đối tượng dấu chấm lửng là gì và bạn có thể sử dụng nó ở đâu. Các trường hợp sử dụng có thể là chú thích loại, thay thế thả vào cho

>>> True
True
>>> Ellipsis
Ellipsis
>>> ...
Ellipsis
1 hoặc sử dụng nó cho một số tính năng nhất định khi bạn cần một chữ không được sử dụng. Hơn nữa, chúng tôi đã xem xét các gói của bên thứ ba sử dụng đối tượng dấu chấm lửng để nhận ra các tính năng đặc biệt

Tôi hy vọng bạn thích đọc bài viết. Hãy chắc chắn để chia sẻ nó với bạn bè và đồng nghiệp của bạn. Nếu bạn chưa có, hãy theo dõi tôi trên Twitter, nơi tôi là @DahlitzF và đăng ký nhận bản tin của tôi, để bạn không bỏ lỡ bất kỳ bài viết nào trong tương lai. Luôn tò mò và tiếp tục viết mã

Dấu chấm lửng trong Numpy là gì?

Dấu chấm lửng được dùng để cắt các mảng nhiều chiều có nhiều mảng nhỏ . Cú pháp dấu chấm lửng có thể được sử dụng để biểu thị việc chọn đầy đủ mọi thứ nguyên không xác định còn lại.

Ý nghĩa của dấu 3 chấm là gì?

Dấu chấm lửng hoặc dấu chấm lửng ở dạng số nhiều là dấu chấm câu gồm ba dấu chấm (. . . ) thể hiện sự bỏ sót từ, thể hiện sự tạm dừng hoặc gợi ý rằng còn điều gì đó chưa được nói .

Ba chấm hoặc dấu chấm lửng là gì?

Dấu chấm lửng (. ) gồm ba khoảng cách đều nhau và được dùng để biểu thị sự bỏ sót từ hoặc gợi ý chưa hoàn chỉnh . Nói chung, dấu chấm lửng phải được coi là một từ có ba chữ cái, có dấu cách, ba dấu chấm và dấu cách.

Sự khác biệt giữa dấu chấm lửng và dấu chấm lửng là gì?

Cả ba cùng nhau tạo thành một dấu chấm lửng. Dạng số nhiều của từ này là dấu chấm lửng, như trong "một nhà văn sử dụng rất nhiều dấu chấm lửng. " Họ cũng đi theo những cái tên sau. điểm chấm lửng, điểm chấm lửng, điểm treo. Chúng tôi đang chọn các dấu chấm lửng ở đây, chỉ để làm cho mọi thứ trở nên rõ ràng