Cách viết bình luận khác nhau trong Python là gì?

Tóm lược. trong hướng dẫn này, bạn sẽ học cách thêm nhận xét vào mã của mình. Và bạn sẽ tìm hiểu các loại nhận xét Python khác nhau bao gồm nhận xét khối, nhận xét nội tuyến và chuỗi tài liệu

Giới thiệu về bình luận Python

Đôi khi, bạn muốn ghi lại mã mà bạn viết. Ví dụ: bạn có thể muốn lưu ý lý do tại sao một đoạn mã hoạt động. Để làm điều đó, bạn sử dụng các ý kiến

Thông thường, bạn sử dụng nhận xét để giải thích các công thức, thuật toán và logic kinh doanh phức tạp

Khi thực thi một chương trình, trình thông dịch Python sẽ bỏ qua các chú thích và chỉ diễn giải mã

Python cung cấp ba loại nhận xét bao gồm nhận xét khối, nhận xét nội tuyến và chuỗi tài liệu

Bình luận khối Python

Một bình luận khối giải thích mã theo sau nó. Thông thường, bạn thụt lề một khối nhận xét ở cùng cấp với khối mã

Để tạo một bình luận khối, bạn bắt đầu với một dấu thăng đơn [_______8_______], theo sau là một khoảng trắng và một chuỗi văn bản. Ví dụ

# increase price by 5% price = price * 1.05

Code language: Python [python]

Nhận xét nội tuyến Python

Khi bạn đặt một nhận xét trên cùng một dòng với một câu lệnh, bạn sẽ có một nhận xét nội tuyến

Tương tự như một bình luận khối, một bình luận nội tuyến bắt đầu bằng một dấu thăng duy nhất [#] và theo sau là một khoảng trắng và một chuỗi văn bản

Ví dụ sau minh họa một nhận xét nội tuyến

salary = salary * 1.02 # increase salary by 2%

Code language: Python [python]

tài liệu Python

Chuỗi tài liệu là một chuỗi ký tự mà bạn đặt làm dòng đầu tiên trong một khối mã, ví dụ: một hàm

Không giống như một nhận xét thông thường, một chuỗi tài liệu có thể được truy cập trong thời gian chạy bằng cách sử dụng thuộc tính  obj.__doc__ trong đó objlà tên của hàm

Thông thường, bạn sử dụng chuỗi tài liệu để tự động tạo tài liệu mã

Chuỗi tài liệu được gọi là docstrings

Về mặt kỹ thuật, docstrings không phải là ý kiến. Họ tạo các biến ẩn danh tham chiếu các chuỗi. Ngoài ra, chúng không bị trình thông dịch Python bỏ qua

Python cung cấp hai loại docstrings. tài liệu một dòng và tài liệu nhiều dòng

1] Tài liệu một dòng

Đúng như tên gọi của nó, một chuỗi tài liệu một dòng phù hợp với một dòng. Chuỗi tài liệu một dòng bắt đầu bằng ba dấu ngoặc kép [_______12_______] và cũng kết thúc bằng ba dấu ngoặc kép [_______12_______]. Ngoài ra, sẽ không có bất kỳ dòng trống nào trước hoặc sau chuỗi tài liệu một dòng

Ví dụ sau minh họa một chuỗi tài liệu một dòng trong hàm

salary = salary * 1.02 # increase salary by 2%

Code language: Python [python]
0

def quicksort[]: """ sort the list using quicksort algorithm """ ...

Code language: Python [python]

2] Tài liệu nhiều dòng

Không giống như chuỗi tài liệu một dòng, chuỗi tài liệu nhiều dòng có thể trải rộng trên nhiều dòng. Một chuỗi tài liệu nhiều dòng cũng bắt đầu bằng ba dấu ngoặc kép [_______12_______] và kết thúc bằng ba dấu ngoặc kép [_______12_______]

Ví dụ sau đây cho bạn thấy cách sử dụng chuỗi tài liệu nhiều dòng

def increase[salary, percentage, rating]: """ increase salary base on rating and percentage rating 1 - 2 no increase rating 3 - 4 increase 5% rating 4 - 6 increase 10% """

Code language: Python [python]

Nhận xét nhiều dòng Python

Python không hỗ trợ bình luận nhiều dòng

Tuy nhiên, bạn có thể sử dụng chuỗi tài liệu nhiều dòng làm nhận xét nhiều dòng. Guido van Rossum, người tạo ra Python, cũng khuyến nghị điều này

Đó là một thực hành tốt để giữ cho nhận xét của bạn rõ ràng, ngắn gọn và giải thích. Mục tiêu cuối cùng là tiết kiệm thời gian và năng lượng cho bạn và những nhà phát triển khác, những người sẽ làm việc với mã sau này

Trong hướng dẫn Nhận xét và chuỗi tài liệu trong python này, chúng ta sẽ tìm hiểu những điều cơ bản về Nhận xét và Chuỗi tài liệu, đồng thời tìm hiểu sâu hơn về các khái niệm và định dạng chính cho Nhận xét và Tài liệu

Tác giả. Sahil [Bạn cũng có thể viết bài trên thatascience. Liên hệ chúng tôi]

Sửa đổi lần cuối. 2 Tháng một, 2022

Bình luận trong Python là gì?

Đầu tiên trong Hướng dẫn về Nhận xét và Tài liệu, chúng ta sẽ nói về Nhận xét vì chúng phổ biến hơn và dễ hiểu hơn

  • Nhận xét là các câu lệnh không thể thực thi được trong Python. Điều đó có nghĩa là cả trình biên dịch python và PVM sẽ không thực thi chúng. Nhận xét dành cho sự hiểu biết của con người, không dành cho trình biên dịch hoặc PVM
  • Nhận xét mã của bạn giúp giải thích quá trình suy nghĩ của bạn và giúp bạn và những người khác hiểu ý định mã của bạn
  • Nhận xét là quan trọng đối với tất cả các loại dự án, bất kể chúng là gì – nhỏ, trung bình hay khá lớn. Đây là một phần thiết yếu trong quy trình làm việc của bạn và là một phương pháp hay dành cho nhà phát triển
  • Trong hướng dẫn này, chúng tôi sẽ đề cập đến một số khái niệm cơ bản về viết nhận xét bằng Python

Tại sao chúng ta sử dụng Bình luận?

  • Công dụng chính của nhận xét như đã đề cập trước đó là giải thích mã cho người dùng theo cách có ý nghĩa và hữu ích mà không có bất kỳ sự phức tạp nào
  • Mục tiêu của chúng tôi với một nhận xét nhất định phải luôn đơn giản hóa mã để người dùng dễ hiểu hơn

[Bán tại. [X=10 #Điều này gán giá trị 10 cho biến X chỉ tỷ lệ phần trăm lỗi. ] Nhận xét cung cấp ngữ cảnh và tránh nhầm lẫn. ]

  • Nhận xét cũng có thể được sử dụng để làm cho mã dễ đọc hơn
  • Một cách sử dụng bình luận độc đáo đến từ việc sử dụng bình luận để ngăn một số phần nhất định của mã thực thi

[Bán tại. [A=20

B=30

#C=40],

Giả sử vì lý do nào đó chúng ta muốn gán một giá trị cho C ngay bây giờ,

Sau đó, bằng cách sử dụng nhận xét, chúng tôi có thể tắt dòng cụ thể đó

Làm cách nào để tạo nhận xét trong Python?

    • Một nhận xét trong Python bắt đầu bằng ký tự băm, # và kéo dài đến cuối dòng vật lý
    • Việc sử dụng các chú thích trong python rất dễ dàng, bạn có thể đưa một dòng chú thích vào mã của mình khá dễ dàng
    • Cũng có thể sử dụng Ba trích dẫn [‘’’] cho nhận xét nhiều dòng

    [Bán tại. [Print[“hello world”] #đây là mã để in hello world]]

Tài liệu trong Python là gì?

Các tài liệu Python là các chuỗi ký tự xuất hiện ngay sau định nghĩa của hàm, phương thức, lớp hoặc mô-đun

      • Nó là một tài liệu được chỉ định cho mã viết. Không giống như các chú thích mã thông thường, tiến sĩ nên mô tả chức năng của một chức năng chứ không phải cách thức hoạt động của nó
      • Một số loại Tài liệu khác nhau là

Tại sao chúng ta sử dụng Docstrings?

Tài liệu giúp bạn hiểu khả năng của một mô-đun hoặc chức năng

Ví dụ: giả sử bạn đã cài đặt thư viện gấu trúc và bạn muốn biết tất cả về pandas packages.

Bạn chỉ cần sử dụng chức năng trợ giúp để lấy tất cả thông tin.

[Bán tại. [trợ giúp[gấu trúc]]]

    • Các tài liệu cho phép chúng tôi mô tả công việc thực tế của một chức năng sẽ được thực hiện bởi nó

    [Bán tại. [def vuông [a]

    ‘’’Biến đầu vào a là bình phương’’’

    trả lại một**a]]

Chúng tôi sử dụng Docstrings như thế nào?

  • Python Docstrings có cú pháp tương tự như cú pháp bình luận. Chuỗi tài liệu phải được chứa bên trong ba dấu ngoặc kép [‘’’]
  • I. e. , mọi thứ bên trong dấu ngoặc kép được coi là một chuỗi tài liệu cho hàm cụ thể đó, tương tự như cách thức hoạt động của nhận xét nhiều dòng
  • Không giống như Nhận xét, Tài liệu không thể bắt đầu từ bất kỳ đâu bên trong mã. Một Docstring chỉ có thể được tạo bên trong một hàm, lớp hoặc mô-đun

[Bán tại. [thêm chắc chắn [a, b]

‘’’Thực hiện cộng các biến đầu vào đã cho

Thông số. int, int [hai số lấy từ người dùng để cộng]

trả lại. int [kết quả là phép cộng của hai số]‘’’

c = a + b

trở lại c]]

  • Chuỗi tài liệu của hàm do người dùng xác định có thể được hiển thị bằng thuộc tính __doc__. Xem xét ví dụ trên, chúng ta có thể sử dụng print[add. __doc__] để hiển thị chuỗi tài liệu cho hàm cụ thể đó.
  • Có thể dễ dàng truy cập Chuỗi tài liệu cho hàm tích hợp bằng cách sử dụng phương pháp tương tự i. e. , in[in. __doc__] sẽ cung cấp cho chúng tôi Chuỗi tài liệu cho hàm print[] tích hợp và cung cấp cho chúng tôi kết quả đầu ra như.

print[value, …, sep=’ ‘, end=’\n’, file=sys. thiết bị xuất chuẩn, flush=False]In giá trị vào luồng hoặc tới hệ thống. thiết bị xuất chuẩn theo mặc định

Đối số từ khóa tùy chọn. tập tin. một đối tượng giống như tệp [luồng]; . tiêu chuẩn. tháng chín. chuỗi được chèn giữa các giá trị, mặc định là khoảng trắng

kết thúc. chuỗi được nối sau giá trị cuối cùng, mặc định một dòng mới

tuôn ra. có nên buộc xả luồng không

Sự khác biệt giữa Comments và Docstrings trong Python

  • Đây là một chủ đề mà hầu hết mọi người dường như gặp rắc rối với,

    Và nên được coi là cực kỳ quan trọng để hiểu trong Nhận xét và Tài liệu trong Python

    Khi nào tôi sử dụng nhận xét?

    Vì vậy, để làm cho chủ đề này dễ hiểu hơn nhiều, chúng tôi đã tạo một bảng đơn giản giúp chúng tôi lựa chọn giữa các chuỗi tài liệu/nhận xét

Nhận xét đơn và nhiều dòng

  • Về cơ bản, có hai cách để chúng ta có thể sử dụng nhận xét trong mã của mình. e. , chú thích một dòng hoặc chú thích nhiều dòng

    1. Nhận xét một dòng
    • Nhận xét một dòng được tạo đơn giản bằng cách bắt đầu một dòng bằng ký tự băm [#]
    • Chúng được tự động kết thúc ở cuối dòng
    • [Bán tại. [#Đây là nhận xét một dòng]]

    2. Nhận xét nhiều dòng

    • Nhận xét nhiều dòng trong Python là một đoạn văn bản được đặt trong dấu phân cách [“””] ở mỗi đầu của nhận xét
    • Chúng cần được chấm dứt bằng cách sử dụng dấu phân cách [“””] ở cuối nhận xét
    • [Bán tại. [in[“xin chào thế giới”]
    • “”” Đây là một nhận xét nhiều dòng và chúng tôi có thể sử dụng nó để giải thích hoạt động của mã”””]]

Làm thế nào để viết bình luận tốt bằng Python?

    • Khi người khác đọc mã của bạn, rất có khả năng họ sẽ không xem qua từng dòng mã của bạn và đây là lúc các nhận xét xuất hiện để giúp tiết kiệm thời gian của họ.  

     

    • Mục tiêu của một bình luận phải luôn là cung cấp thông tin chính xác cho người đọc một cách đơn giản và nhanh chóng

     

    • Trong phần này, chúng tôi sẽ cung cấp cho bạn một số mẹo có thể giúp bạn viết bình luận hay trong python

  •  

    1. Luôn cố gắng thêm nhận xét nội tuyến cho một chức năng phức tạp

    Các chức năng phức tạp không dễ hiểu đối với người đọc có thể được hiểu đơn giản hơn nhiều với sự trợ giúp của nhận xét nội tuyến đưa ra mô tả ngắn về chức năng

    2. Luôn cố gắng tỏ ra chuyên nghiệp khi viết bình luận. Đừng bao giờ tỏ ra thân thiện hay đùa giỡn khi viết bình luận, hãy luôn tiếp cận người đọc một cách chuyên nghiệp. Nếu các bình luận không được chỉnh sửa, chúng thậm chí có thể đến tay khách hàng

    3. Cố gắng tránh lặp lại chính mình trong một bình luận

    • Mục tiêu chính của bạn khi viết bình luận phải luôn là tránh nhầm lẫn và tiết kiệm thời gian của người đọc. Bằng cách lặp lại chính mình trong một bình luận, bạn sẽ lãng phí thời gian quý báu của khách hàng

    Ví dụ. x = a*a #x lưu trữ giá trị của a*a [Nhận xét này hoàn toàn không cung cấp nội dung mới cho khách hàng và chỉ lãng phí thời gian của họ] Vì vậy, chúng ta nên tránh viết những nhận xét như vậy

    4. Tránh viết mã có mùi

    • Nếu có bất kỳ loại lỗi nào trong mã của bạn, đừng bao giờ cố gắng biện minh cho lỗi đó bằng cách sử dụng nhận xét, đó được coi là một cách làm không tốt và có thể khiến bạn gặp rắc rối trong sự nghiệp của mình
    • Nếu mã của bạn gặp sự cố, hãy cố gắng sửa mã theo cách thủ công vì sẽ không có nhiều bình luận để sửa mã cho khách hàng

Tài liệu đơn và nhiều dòng

    1. Docstrings dòng đơn
    • Rõ ràng từ cái tên, các loại Tài liệu này bắt đầu và kết thúc trên cùng một dòng
    • Chúng bắt đầu và kết thúc bằng việc sử dụng dấu phân cách [“””] và chỉ được sử dụng để cung cấp các chi tiết nhỏ về chức năng hoặc lớp cụ thể
    • [Bán tại. [def script_run[bản thân, tập lệnh]. “””Kiểm tra xem tập lệnh có chạy đúng không”””]]

    2. Tài liệu nhiều dòng

    • Chuỗi tài liệu nhiều dòng bao gồm một dòng tóm tắt giống như chuỗi tài liệu một dòng, theo sau là một dòng trống, tiếp theo là mô tả phức tạp hơn
    • Chuỗi tài liệu cho một mô-đun thường liệt kê các lớp, ngoại lệ và chức năng [và bất kỳ đối tượng nào khác]
    • Được xuất bởi mô-đun, với một bản tóm tắt một dòng của mỗi
    • [Bán tại. [def set_error[self, err]

    “””Đặt giá trị lỗi

    Giá trị của tham số err được lưu dưới dạng giá trị trong biến lớp error. Giá trị đã cho được chuyển đổi thành giá trị float nếu chưa được thực hiện

    lỗi tham số. giá trị lỗi

    loại lỗi. trôi nổi

    Trở lại. Không có gì"""

    bản thân. err = float[err]

    Trở lại]]

Các loại Docstring khác nhau

    1. Bây giờ, chúng ta hãy xem các loại Tài liệu khác nhau mà chúng ta có thể sử dụng trong Python. Chúng được liệt kê và giải thích như sau

      1. Tài liệu lớp học
      • Tài liệu lớp được tạo cho chính lớp đó, cũng như bất kỳ phương thức lớp nào
      • Class Docstrings cần được đặt ngay sau phần khai báo lớp
      • Một Class Docstring phù hợp phải chứa một bản tóm tắt ngắn gọn về mục đích và hành vi của nó và Bất kỳ thuộc tính nào của lớp

      [Bán tại. [lớp SimpClass

      “””Chuỗi tài liệu lớp học ở đây. ”””

      chắc chắn xin chào[]

      “””Chuỗi tài liệu về phương thức lớp ở đây. ”””

      in ["xin chào thế giới"]

      2. Chuỗi tài liệu gói và mô-đun

      • Chuỗi tài liệu mô-đun giống với chuỗi tài liệu lớp. Thay vì các lớp và phương thức lớp được ghi lại, giờ đây nó là mô-đun và bất kỳ chức năng nào được tìm thấy trong
      • Chuỗi tài liệu gói nên liệt kê các mô-đun và gói con được xuất bởi gói
      • Các chuỗi tài liệu này phải được đặt ở đầu __init__ của gói. tệp py
      • Như đã nêu trước đó, Mô-đun/gói Tài liệu này có thể được truy cập bằng cách sử dụng lệnh help[] đơn giản

      3. Tập lệnh hoặc Tài liệu Chức năng

      • Các Docstrings này được cung cấp cho các chức năng đơn giản độc lập và thực hiện một nhiệm vụ nhất định
      • Tài liệu tập lệnh trước tiên phải đưa ra một mô tả ngắn về chức năng của tập lệnh. Tiếp theo là tất cả các loại đầu vào và tham số, nếu có, sau đó nêu rõ loại trả về của tập lệnh cụ thể đó

      [Bán tại. [def hello_world[arg]

      “””

      Tóm lược

      Đưa ra một mô tả ngắn gọn và súc tích về kịch bản ở đây

      Thông số

      arg [int]. Nói về lập luận ở đây

      trả lại

      int. Nói về loại giá trị trả về ở đây

      “””

      đối số trả về]]

Các định dạng khác nhau của Docstrings

    1. Bây giờ chúng ta hãy xem các định dạng khác nhau của Tài liệu có sẵn để sử dụng, phần chính của Hướng dẫn Nhận xét và Tài liệu

      Vì vậy, bạn có thể quyết định cái nào bạn muốn sử dụng trong mã của mình. Nhưng hãy nhớ sử dụng cùng một định dạng Chuỗi tài liệu cho toàn bộ mã vì nó có thể gây nhầm lẫn cho người đọc

      Trước tiên, chúng ta hãy xem định dạng Chuỗi tài liệu được sử dụng phổ biến nhất mà tôi. e. , định dạng Nhân sư

1. định dạng nhân sư

  • Sphinx rất dễ hiểu và ban đầu được tạo riêng cho Tài liệu Python
  • Sphinx sử dụng Văn bản được cấu trúc lại, Văn bản được cấu trúc lại là ngôn ngữ đánh dấu nhẹ được sử dụng trong trình tạo trang web tĩnh như Sphinx. Nó chứa các công cụ mạnh mẽ để đánh dấu ngữ nghĩa, tái sử dụng nội dung và bộ lọc nội dung cho các loại đầu ra khác nhau.

[Ví dụ về định dạng Nhân sư]

  • Một cặp param và type tùy chọn chỉ thị phải .
  • Tùy chọn tăng được sử dụng để mô tả bất kỳ lỗi nào do mã đưa ra,
  • Trong khi các tùy chọn return và rtype được sử dụng để .

Bây giờ chúng ta đã hiểu hoạt động của Định dạng chuỗi tài liệu Sphinx,

Mọi định dạng khác chỉ là một phiên bản tương tự hoặc có nguồn gốc từ định dạng Nhân sư làm cho các định dạng sau dễ hiểu hơn nhiều

class Bank[object]:
    '''
    The Bank object contains info about all the accounts
    :param arg: The arg is used for ...
    :type arg: str
    :param `*args`: The variable arguments are used for ...
    :param `**kwargs`: The keyword arguments are used for ...
    :ivar arg: This is where we store arg
    :vartype arg: str
    '''


    def __init__[self, arg, *args, **kwargs]:
        self.arg = arg

    def acc[self, Money_withdrawn, Total_Money]:
        '''We can't Withdraw Money without it being in the bank

        :param Money_withdrawn: The amount of money withdrawn
        :type amount: float
        :param Total_Money: Total Money in the account
		:type amount: float
        :raises: :class:`RuntimeError`: Amount Withdrawn greater than Total_Money

        :returns: Remaining Money 
        :rtype: float
        '''  
        pass

2. Google Tài liệu

  • Google Style dễ sử dụng và trực quan hơn. Được sử dụng cho dạng tài liệu ngắn hơn
  • Định dạng Google Docstring đôi khi có vấn đề với các mô tả nhiều dòng vì chúng có thể trông lộn xộn
  • Định dạng này cũng được coi là tốt hơn định dạng Sphinx

class Bank[object]:
    '''
    The Bank object contains info about all the accounts

    Args:
        arg [str]: The arg is used for...
        *args: The variable arguments are used for...
        **kwargs: The keyword arguments are used for...

    Attributes:
        arg [str]: This is where we store arg,
    '''
    def __init__[self, arg, *args, **kwargs]:
        self.arg = arg

    def acc[self, Money_withdrawn, Total_Money]:
        '''We can't Withdraw Money without it being in the bank
        Args:
            Money_withdrawn [float]: The amount of Money Withdrawn 
            Total_money [float]: Total Money in the account

        Raises:
            RuntimeError: Amount Withdrawn greater than Total_Money

        Returns:
            float: Remaining Money
        '''
        pass

3. Kiểu dáng gọn gàng

  • Numpy Style là một loại định dạng chi tiết hơn nhiều
  • Đó là một lựa chọn tuyệt vời nếu bạn muốn làm tài liệu chi tiết, tôi. e. , tài liệu mở rộng về tất cả các chức năng và tham số
  • Do kiểu Numpy này cũng dài nhất trong số các định dạng khác hiện có

[Ví dụ về định dạng NumPy]

class Bank[object]:
    '''
    The Bank object contains info about all the accounts

    Parameters
    ----------
    arg : str
        The arg is used for ...
    *args
        The variable arguments are used for ...
    **kwargs
        The keyword arguments are used for ...

    Attributes
    ----------
    arg : str
        This is where we store arg,
    '''
    def __init__[self, arg, *args, **kwargs]:
        self.arg = arg

    def acc[self, Money_withdrawn, Total_Money]:
        '''We can't Withdraw Money without it being in the bank

        Parameters
        ----------
        Money_withdrawn : float
            The amount of money withdrawn
        Total_Money : float
            Total Money in the account

        Raises
        ------
        RuntimeError
            Amount Withdrawn greater than Total_Money

        Returns
        -------
        float
            Remaining Money
        '''
        pass

Kết luận về Nhận xét và Chuỗi tài liệu trong Hướng dẫn Python

  • Và chúng tôi đã có nó;
  • Chúng tôi đã học được sự khác biệt chính giữa Nhận xét và Chuỗi tài liệu và cách chúng tôi quyết định sử dụng cái nào trong một trường hợp nhất định
  • Chúng tôi cũng đã tìm hiểu về các loại định dạng Docstring khác nhau mà bạn có thể sử dụng tùy thuộc vào loại tài liệu bạn muốn xây dựng
  • Với kiến ​​thức lão luyện này, bạn có thể dễ dàng thêm nhận xét và Tài liệu vào mã của mình trong khi đưa ra lời giải thích cho người đọc. Bây giờ, tại sao không thử nó một mình. Theo dõi chúng tôi trên Reddit

    Ví dụ về nhận xét trong Python là gì?

    print["Xin chào, thế giới. "] Miễn là chuỗi không được gán cho một biến, Python sẽ đọc mã, nhưng sau đó bỏ qua nó và bạn đã đưa ra nhận xét nhiều dòng.

    Các cách để nhận xét nhiều dòng trong Python là gì?

    Để nhận xét nhiều dòng trong Python, bạn có thể thêm vào mỗi dòng một hàm băm [ # ] . Với phương pháp này, về mặt kỹ thuật, bạn đang tạo nhiều nhận xét trên một dòng. Cách giải quyết thực sự để tạo nhận xét nhiều dòng trong Python là sử dụng chuỗi tài liệu.

Chủ Đề