2013-04-08 30 views
12

Có một số question đối xử với điều này nhưng không nói về tất cả các điểm tôi quan tâm.Python PEP 8: Các dòng trống ở đầu mô-đun

PEP 8 nói về dòng trống:

Separate top-level function and class definitions with two blank lines. 

Sau đó, nếu bạn có:

  1. Một mô-đun với chỉ một lớp:

    # -*- coding: utf-8 -*- 
    
    
    class A(object): 
        pass 
    

    Bạn có tách bắt đầu của lớp và nhận xét mã hóa với hai dòng trống?

  2. Một mô-đun với tuyên bố nhập khẩu và các lớp:

    # -*- coding: utf-8 -*- 
    
    import module 
    
    
    class B(object): 
        pass 
    
    
    class C(object): 
        pass 
    

    Bạn có tách báo cáo kết quả nhập khẩu và những nhận xét mã hóa với một dòng trống?

    Và câu lệnh nhập và bắt đầu lớp học với hai dòng trống?

  3. Và một module chính:

    #!/usr/bin/env python 
    # -*- coding: utf-8 -*- 
    
    import module 
    
    
    def main(): 
        a = module.A() 
        return 0 
    
    
    if __name__ == '__main__': 
        status = main() 
    

    Bạn có tách báo cáo kết quả nhập khẩu và các chức năng cấp cao nhất với hai dòng trống?

    Và kết thúc chức năng cấp cao nhất và câu lệnh có điều kiện với hai dòng trống?

Trả lời

8

Có một mô-đun Python gọi pep8 mà có thể kiểm tra mã của bạn để xem nếu nó phù hợp với chủ trương pep8.

Tôi đã thử chạy pep8 trên các ví dụ bạn đã liệt kê và một số biến thể của chúng, và nói chung, chương trình pep8 chấp nhận tất cả chúng tuân thủ nguyên tắc pep8. Về cơ bản, câu trả lời cho tất cả các câu hỏi của bạn là .

Hiện có một số mức độ chủ quan - ví dụ: bạn có thể có hai hoặc một dòng mới giữa hàm chính và phân đoạn if __name__ == '__main__'. Tuy nhiên, tôi sẽ không lo lắng quá nhiều về tuân thủ pep8 - chỉ cần tải xuống và cài đặt chương trình pep8 cùng với các trình phân tích mã khác (chẳng hạn như pylint). Miễn là mã của bạn đang vượt qua những thử nghiệm đó, nó đủ tốt.

Các vấn đề liên quan