Tin tức và phân tích của tất cả các thiết bị di động

Cách sử dụng câu lệnh “Pass” trong Python

Khi viết chương trình, bạn hiếm khi viết hết mã trong một lần và chỉ chạy mã ở cuối. Thay vào đó, rất có thể bạn sẽ viết một số mã, chạy chương trình, viết thêm và lặp lại cho đến khi hoàn thành.

Bạn sẽ phân chia và đánh bại chương trình của mình một cách hiệu quả bằng cách tập trung vào một số phần thiết yếu và bỏ qua những phần khác, sau đó quay lại để lấp đầy những khoảng trống. Để thực hiện điều này một cách hiệu quả trong Python, bạn cần sử dụng câu lệnh pass, đây chính là chủ đề của bài viết này.

Yêu cầu “Đạt” là gì?

Không giống như hầu hết các từ khóa yêu cầu người dịch làm điều gì đó, câu lệnh pass là duy nhất vì nó yêu cầu người dịch không làm gì cả. Nó được sử dụng bên trong các khối.

Các khối trong Python là các dòng mã được thụt vào dưới các hàm, lớp hoặc câu lệnh luồng điều khiển. Câu lệnh điều khiển luồng là những câu lệnh thay đổi cách thực thi bình thường của một chương trình từ trên xuống dưới bằng cách bỏ qua mã với các câu lệnh có điều kiện hoặc lặp lại việc thực thi mã bằng các vòng lặp. Các từ khóa luồng điều khiển điển hình trong Python là if, for và while.

Cần có chứng chỉ vượt qua

Tôi đã giải thích trước đó rằng câu lệnh pass là một câu lệnh không làm gì cả. Nhưng tại sao chúng ta lại cần một tuyên bố không làm gì khi chúng ta đang xây dựng một chương trình thực hiện điều gì đó? Trong phần này, tôi sẽ giải thích các trường hợp sử dụng của câu lệnh pass.

# 1. Trình giữ chỗ để triển khai trong tương lai

Như đã đề cập trong phần giới thiệu, chia để trị rất hữu ích khi viết chương trình. Ví dụ: khi viết một hàm, bạn có thể muốn tạo tiêu đề hàm và quay lại sau để viết nội dung hàm.

Nhưng trình thông dịch python sẽ mắng bạn nếu bạn cố chạy mã. Điều này là do Python mong đợi phần thân của hàm hoặc bất kỳ khối mã nào phải chứa ít nhất một câu lệnh. Đây là một hàm ví dụ tôi có trong tệp python:

def my_function():
    # Will write the code later
    # For now there are no statements

Bây giờ nếu tôi cố gắng thực thi mã, tôi gặp lỗi cú pháp có nội dung như:

File "<ipython-input-1-58189b01193e>", line 3
    # For now there are no statements
                                     ^
SyntaxError: incomplete input

Chiến lược chia để trị của chúng ta sẽ không hiệu quả nếu chúng ta viết trước mọi thứ, nhưng Python yêu cầu chúng ta ít nhất phải viết một cái gì đó. Tuyên bố vượt qua giúp về vấn đề này. Về mặt kỹ thuật, đó là một câu lệnh, vì vậy nếu bạn đặt nó vào một khối, Python sẽ không mắng bạn. Tuy nhiên, nó không làm gì cả nên bạn không phải lo lắng về tính logic của hàm. Đây là hàm trước đó với câu lệnh pass.

def my_function():
    # Will write the code later
    # For now we only have the pass statement
    pass

Bây giờ nếu chúng tôi chạy mã, chúng tôi sẽ không gặp bất kỳ lỗi nào.

Bạn cũng có thể gọi hàm này để xác nhận rằng nó không làm gì cả.

Về cơ bản, đây là trường hợp sử dụng chính của câu lệnh pass trong Python – làm phần giữ chỗ cho các khối mã trống. Nó không nhất thiết chỉ là một hàm mà còn hoạt động với các biểu thức, vòng lặp và lớp có điều kiện.

#2. Triển khai các lớp và giao diện trừu tượng

Câu lệnh pass cũng có thể được sử dụng để triển khai một lớp trừu tượng. Lớp trừu tượng là lớp thực hiện các phương thức trừu tượng và phương thức trừu tượng là một phương thức được xác định nhưng không được triển khai. Điều này tương tự với trường hợp sử dụng được mô tả ở trên, trong đó chúng tôi sử dụng biểu thức truyền làm phần giữ chỗ. Tuy nhiên, không giống như trường hợp trước khi tuyên bố vượt qua chỉ là tạm thời, trong trường hợp này nó là vĩnh viễn.

Lớp trừu tượng là lớp cơ sở xác định các phương thức mà lớp cha của chúng sẽ triển khai. Các lớp trừu tượng không triển khai bất kỳ logic nào; xác định các phương thức tạo nên các lớp mà chúng kế thừa. Kết quả là bạn không trực tiếp khởi tạo lớp cơ sở.

Bạn sử dụng trình trang trí @abstractmethod và lớp ABC được xác định trong gói abc để tạo các lớp trừu tượng trong Python. Nếu bạn chưa biết hoặc quên về trình trang trí thì đây là bài viết về trình trang trí trong Python.

Như tôi đã nói, gói abc định nghĩa trình trang trí @abstractmethod và lớp ABC mà chúng ta sẽ sử dụng như sau:

from abc import (abstractmethod, ABC)

class BasicClass(ABC):

    @abstractmethod
    def basic_method(self):
        # Basic method is a method that any superclass of BasicClass should implement
        # So we simply define it here and not implement it
        # So in the body we use the pass statement so its valid code
        pass

BasicClass kế thừa từ lớp ABC. Ngoài ra, chúng ta còn có trình trang trí @abstraccmethod được xác định xung quanh phương thức basic_method. Bây giờ bạn có thể kế thừa từ lớp này và triển khai basic_method.

class DerivedClass(BasicClass):
    def basic_method(self):
        print("Hello from the defined basic method")

Sau đó, bạn có thể khởi tạo lớp này và chạy thử basic_method.

my_object = DerivedClass()

my_object.basic_method()

Khi bạn chạy cái này, bạn sẽ có thể hiển thị thông báo trên màn hình.

Hello from the defined basic method

#3. Không làm gì với các ngoại lệ bị bắt

Khi một chương trình gặp lỗi Python, nó sẽ đưa ra một ngoại lệ. Các ngoại lệ gây phiền toái vì chúng khiến chương trình gặp sự cố và tạm dừng thực thi. Tuy nhiên, bạn có thể nắm bắt và xử lý các ngoại lệ để ngăn chương trình của bạn gặp sự cố. Bạn có thể sử dụng câu lệnh pass nếu không muốn làm gì cụ thể để xử lý lỗi. Đây là một ví dụ:

try:
    # code that will definitely raise an exception
    raise Exception('Some exception')
except:
    pass

Nếu bạn chạy đoạn mã trên, sẽ không có gì xảy ra. Điều này là do ngoại lệ được ném và xử lý bởi mã trong khối ngoại lệ. Nhưng mã này không làm gì nên không có gì xảy ra. Thông thường, trừ những trường hợp ngoại lệ, bạn muốn ghi lại hoặc xử lý chúng một cách khéo léo. Nhưng nếu bạn không muốn làm gì cả thì đây là cách bạn sẽ làm.

Sự khác biệt giữa Đạt và Hủy bỏ và Tiếp tục là gì?

Các từ khóa khác bạn có thể gặp là hủy bỏ và tiếp tục. Tóm lại, tôi sẽ giải thích chức năng của chúng để bạn có thể thấy chúng khác với câu lệnh pass như thế nào.

Tuyên bố ngừng cung cấp

Câu lệnh break dùng để thoát khỏi vòng lặp. Mỗi lần lặp tiếp theo của vòng lặp sẽ bị hủy bỏ. Ví dụ: giả sử bạn đang viết hàm tìm kiếm tuyến tính. Khi một phần tử được tìm thấy, không có lý do gì để tiếp tục lặp lại đến cuối danh sách. Thoát khỏi vòng lặp sẽ có ý nghĩa. Vì vậy, bạn sẽ sử dụng câu lệnh break. Đây là một ví dụ về hàm tìm kiếm tuyến tính:

def linear_search(values, search_value):
    for i in range(len(values)):
        if values[i] == search_value
            print("Value found at index", i)
            break

Tiếp tục tuyên bố

Câu lệnh continue được sử dụng để bỏ qua bước lặp hiện tại trong một vòng lặp. Nếu bạn đang lặp qua một danh sách các số, khi chương trình của bạn gặp câu lệnh continue, nó sẽ dừng lần lặp hiện tại và chuyển sang lần lặp tiếp theo. Vòng lặp tiếp tục. Sau đây là một hàm ví dụ sử dụng câu lệnh continue. Chương trình nhân đôi tất cả các số lẻ nên danh sách chỉ chứa các số chẵn.

def make_even(nums):
    for i in range(len(nums)):
        if nums[i] % 2 == 0:
            # If the num is already even we jump to the next iteration using continue
            continue
        
        # Only odd numbers will get to this point
        # We double the number so it becomes even
        nums[i] *= 2

Hy vọng rằng, bằng cách hiểu các câu lệnh break và continue, bạn có thể phân biệt chúng với câu lệnh pass.

Các phương pháp hay nhất để sử dụng câu lệnh vượt qua

✅ Hãy nhớ rằng câu lệnh pass thường được sử dụng như một phần giữ chỗ tạm thời; hãy nhớ thay thế câu lệnh pass bằng mã thực tế khi bạn đã sẵn sàng.

✅ Nếu bạn đang sử dụng câu lệnh vượt qua cho bất kỳ mục đích nào khác ngoài phần giữ chỗ tạm thời, hãy kèm theo nhận xét giải thích lý do tại sao nó ở đó.

những từ cuối

Trong bài viết này, tôi đã giải thích câu lệnh pass trong Python, một từ khóa hữu ích cho phép bạn phân chia và chinh phục khi viết mã. Câu lệnh pass cũng được mô tả trong tài liệu Python.

Sau đó, hãy xem các loại lỗi Python phổ biến và cách giải quyết chúng.

Mục lục