Hướng dẫn python return best practices - các phương pháp hay nhất về python trả lại

I. Style

1. Naming

elements = ... active_elements = ... defunct_elements ...

  • Tránh các phương thức getter và setter:

    Đúng:

    import canteen
    import canteen.sessions
    from canteen import sessions
    

    Sai:

    from canteen import get_user  # Symbol from canteen/__init__.py
    from canteen.sessions import get_session  # Symbol from canteen/sessions.py
    

    Thích ký hiệu ngược:

  • elements = ...
    active_elements = ...
    defunct_elements ...
    

    1. System import
    2. Third-party imports
    3. Local source tree imports
    

    Tránh các phương thức getter và setter:

Indentation: Khoảng cách thụt lề luôn là 4 khoảng trắng không sử dụng tabs.

  • 2. Imports:
  • Import toàn bộ modules thay vì các ký hiệu riêng lẻ trong 1 module
    • Ngoại lệ: Đối với mã của bên thứ ba nơi tài liệu nói rõ ràng để nhập các ký hiệu riêng lẻ.
    • Đặt tất cả các import ở đầu trang với ba phần, mỗi phần được phân tách bằng một dòng trống, theo thứ tự:
    • Điều này để làm rõ với mỗi module đến từ đâu
    • 3. Documentation
    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    1
  • Sử dụng tài liệu một dòng cho các chức năng rõ ràng:
    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    0
    • Tài liệu nhiều dòng nên bao gồm:
    • Tóm tắt
    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    2

Các trường hợp sử dụng, nếu thích hợp

  • Luận điểm

    Sai:

    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    3

    Đúng:

    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    4
  • Thích ký hiệu ngược:

elements = ... active_elements = ... defunct_elements ...

  • Tránh các phương thức getter và setter:
  • Indentation: Khoảng cách thụt lề luôn là 4 khoảng trắng không sử dụng tabs.

2. Imports:

  • Import toàn bộ modules thay vì các ký hiệu riêng lẻ trong 1 module

Ngoại lệ: Đối với mã của bên thứ ba nơi tài liệu nói rõ ràng để nhập các ký hiệu riêng lẻ.

  • Đặt tất cả các import ở đầu trang với ba phần, mỗi phần được phân tách bằng một dòng trống, theo thứ tự:
  • Điều này để làm rõ với mỗi module đến từ đâu
  • 3. Documentation
  • Sử dụng tài liệu một dòng cho các chức năng rõ ràng:
    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    0

Tài liệu nhiều dòng nên bao gồm:

  • Tóm tắt
  • Các trường hợp sử dụng, nếu thích hợp
  • Luận điểm

Kiểu trả về và ý nghĩa, trừ trường hợp không trả về

Chú ý:

  • Sử dụng các từ hành động ("Return") thay vì mô tả ("Returns").
  • Sử dụng phương thức
    import audio
    core = audio.AudioCore()
    controller = audio.AudioController()
    
    7 trong chuỗi tài liệu cho lớp.

4. Comments

Sử dụng một cách tiết kiệm. Code dễ đọc tốt hơn là có nhiều comment. Thông thường, các phương thức gọn gàng, ngắn gọn có hiệu quả hơn comment.

  • Khi bạn viết comment hãy nhớ áp dụng Strunk và White - PEP 8
  • 5. Line Lengths
  • Don't stress over it. 80-100 characters is fine.
  • Sử dụng dấu ngoặc đơn cho dòng kế tiếp:
    import audio
    core = audio.Core()
    controller = audio.Controller()
    
    5
  • II. Testing
  • Cố gắng cho phạm vi 100% code coverage, nhưng không bị ám ảnh về số % đó.
  • 1. General testing guidelines
  • Sử dụng tên dài, mô tả. Điều này thường làm giảm sự cần thiết về doctrings trong các phương thức test.
  • Test nên được cô lập. Không tương tác với cơ sở dữ liệu hoặc network thật. Sử dụng một cơ sở dữ liệu thử nghiệm riêng biệt, hoặc sử dụng các mock objects.