Hướng dẫn python should each class have its own file - python nên mỗi lớp có tệp riêng

Tôi khá mới với Python nói chung.

Tôi biết rằng tôi có thể tạo nhiều lớp trong cùng một tệp .py, nhưng tôi tự hỏi liệu tôi có nên tạo từng lớp trong tệp .py của riêng mình không.

Ví dụ, trong C#, tôi sẽ có một lớp xử lý tất cả các tương tác cơ sở dữ liệu. Sau đó, một lớp khác có quy tắc kinh doanh.

Đây có phải là trường hợp trong Python?

Hướng dẫn python should each class have its own file - python nên mỗi lớp có tệp riêng

hỏi ngày 19 tháng 1 năm 2010 lúc 23:49Jan 19, 2010 at 23:49

Sergio Tapiasergio TapiaSergio Tapia

39K75 Huy hiệu vàng181 Huy hiệu bạc254 Huy hiệu đồng75 gold badges181 silver badges254 bronze badges

Không. Phong cách Python điển hình là đặt các lớp liên quan vào cùng một mô -đun. Nó có thể là một lớp kết thúc trong một mô -đun của riêng nó (đặc biệt nếu đó là một lớp lớn), nhưng nó không phải là một mục tiêu theo đúng nghĩa của nó. Và khi bạn làm, xin vui lòng không đặt tên cho mô -đun theo lớp - bạn sẽ kết thúc việc nhầm lẫn chính mình và những người khác về cái nào.

Đã trả lời ngày 19 tháng 1 năm 2010 lúc 23:51Jan 19, 2010 at 23:51

Thomas Woutersthomas WoutersThomas Wouters

127K23 Huy hiệu vàng146 Huy hiệu bạc122 Huy hiệu Đồng23 gold badges146 silver badges122 bronze badges

4

Mỗi tệp .py đại diện cho một mô -đun, vì vậy bạn nên giữ các nhóm chức năng, hằng số và các lớp logic cùng nhau trong cùng một tệp.

Mỗi lớp trong một tệp .py sẽ chỉ tạo ra Epic Bloat trong bảng mô -đun của bạn, vì nếu bạn chỉ quan tâm đến một lớp, bạn vẫn có thể

from whatever import SomeClass

Đã trả lời ngày 19 tháng 1 năm 2010 lúc 23:51Jan 19, 2010 at 23:51

3

Thomas Woutersthomas Wouters

127K23 Huy hiệu vàng146 Huy hiệu bạc122 Huy hiệu Đồng

  1. Mỗi tệp .py đại diện cho một mô -đun, vì vậy bạn nên giữ các nhóm chức năng, hằng số và các lớp logic cùng nhau trong cùng một tệp.
    • Mỗi lớp trong một tệp .py sẽ chỉ tạo ra Epic Bloat trong bảng mô -đun của bạn, vì nếu bạn chỉ quan tâm đến một lớp, bạn vẫn có thể
    • Tôi sẽ không đồng ý với những người khác và nói có. Đối với tôi, tôi đã có thành công tốt hơn khi đặt từng lớp vào tệp (mô -đun) của riêng mình. Nhưng có những trường hợp ngoại lệ vì vậy hãy để tôi giải thích với một ví dụ.
  2. Nếu bạn có một lớp foo, thì hãy đặt nó vào một tệp có tên foo.py, với các phần sau:
    • Nhập khẩu
    • Đây là nơi bạn kéo vào phụ thuộc.
    • Ví dụ: import math, from Bar import *
    • Quả cầu
  3. Đây là nơi bạn xác định giao diện bên ngoài cho mô -đun của bạn, tất cả các biểu tượng có thể nhìn thấy bên ngoài mô -đun này.
    • Ví dụ: __all__ = ['Foo']
    • Đây cũng là nơi bạn có thể xác định các biến toàn cầu (xấu) và hằng số toàn cầu (tốt). Những thế giới này không cần phải xuất khẩu; Chúng có thể được thực hiện toàn cầu chỉ để đơn giản hóa mã.
  4. Ví dụ: PI = 3.14159 có nghĩa là bạn có thể viết PI, trong khi nếu bạn xác định nó bên trong lớp foo thì bạn sẽ cần phải viết Foo.PI.
    • Chức năng

Đây là nơi bạn xác định tất cả các chức năng cấp cao nhất có liên quan đến lớp FOO, nhưng không thuộc về không gian tên FOO của lớp. Đây có lẽ là hiếm vì các lớp cho phép cả hai lớp @staticmethods và bên trong.

Ví dụ: def print_foo(foo): print(foo)

Các lớp họcJan 12, 2011 at 18:25

Hướng dẫn python should each class have its own file - python nên mỗi lớp có tệp riêng

1

Ví dụ:

class foo():
   print 'a bunch of time consuming work'

class tryme():
   print 'try me'
0

Đôi khi bạn sẽ muốn đặt nhiều hơn một lớp trong cùng một mô -đun. Bạn nên làm điều này bất cứ khi nào hai hoặc nhiều lớp liên quan về mặt khái niệm đến điểm mà bạn hầu như sẽ luôn sử dụng chúng cùng nhau và không bao giờ độc lập. Đây là ngoại lệ, không phải là tiêu chuẩn. Trong trường hợp này, thêm tất cả các tên lớp vào toàn cầu

class foo():
   print 'a bunch of time consuming work'

class tryme():
   print 'try me'
1.Jan 20, 2010 at 14:52

Cuối cùng, với mỗi mô -đun foo.py, cần có một mô -đun kiểm tra đơn vị tương ứng có tên là Testfoo.py.Bruno Oliveira

Đã trả lời ngày 12 tháng 1 năm 2011 lúc 18:254 gold badges42 silver badges39 bronze badges

1

Một điểm đáng tin khác là nếu một tệp phát triển quá lớn, bạn luôn có thể biến nó thành một gói, dễ dàng tổ chức lại mà không phá vỡ mã của máy khách.

Đã trả lời ngày 19 tháng 1 năm 2010 lúc 23:51Jan 19, 2010 at 23:51

Thomas Woutersthomas WoutersKenan Banks

127K23 Huy hiệu vàng146 Huy hiệu bạc122 Huy hiệu Đồng34 gold badges151 silver badges171 bronze badges

Mỗi tệp .py đại diện cho một mô -đun, vì vậy bạn nên giữ các nhóm chức năng, hằng số và các lớp logic cùng nhau trong cùng một tệp.

manyClass.py

class foo():
   print 'a bunch of time consuming work'

class tryme():
   print 'try me'

Mỗi lớp trong một tệp .py sẽ chỉ tạo ra Epic Bloat trong bảng mô -đun của bạn, vì nếu bạn chỉ quan tâm đến một lớp, bạn vẫn có thể

Tôi sẽ không đồng ý với những người khác và nói có. Đối với tôi, tôi đã có thành công tốt hơn khi đặt từng lớp vào tệp (mô -đun) của riêng mình. Nhưng có những trường hợp ngoại lệ vì vậy hãy để tôi giải thích với một ví dụ.

Nếu bạn có một lớp foo, thì hãy đặt nó vào một tệp có tên foo.py, với các phần sau:
try me

Nhập khẩuSep 3, 2015 at 22:02

Hướng dẫn python should each class have its own file - python nên mỗi lớp có tệp riêng

Đây là nơi bạn kéo vào phụ thuộc.Jim Paul

Ví dụ: import math, from Bar import *1 silver badge4 bronze badges

1

Các lớp học có nên ở trong tệp python của riêng họ không?

Không có phong cách Python chính thức là đặt các lớp liên quan vào cùng một mô -đun.Nó có thể là một lớp kết thúc trong một mô -đun của riêng nó (đặc biệt nếu đó là một lớp lớn), nhưng nó không phải là một mục tiêu theo đúng nghĩa của nó. Typical Python style is to put related classes in the same module. It may be that a class ends up in a module of its own (especially if it's a large class), but it should not be a goal in its own right.

Các lớp có nên là các tệp riêng biệt Python?

Vì Python không chỉ là ngôn ngữ OO, nó không có ý nghĩa có quy tắc nói rằng, một tệp chỉ nên chứa một lớp.Một tệp (mô -đun) phải chứa các lớp / hàm thuộc về nhau, tức là cung cấp chức năng tương tự hoặc phụ thuộc vào nhau.Tất nhiên bạn không nên phóng đại điều này.one file should only contain one class. One file (module) should contain classes / functions that belong together, i.e. provide similar functionality or depend on each other. Of course you should not exaggerate this.

Mỗi lớp có nên có một tệp riêng không?

Đó là thực hành tốt để làm như vậy.Bạn có thể dễ dàng tìm thấy lớp nếu bạn đặt tên cho tệp theo lớp.. You can easily find the class if you name the file after the class.

Một lớp có nên có tệp riêng không?

Vì vậy, trình biên dịch không nên lo lắng quá nhiều về việc liên kết một lớp không công khai vì đây là những điều riêng tư với gói.Nhưng chúng ta nên luôn luôn khai báo mọi lớp trong tệp riêng của mình bởi vì chúng tôi sẽ làm cho nguồn ngắn, đơn giản, được tổ chức tốt và dễ hiểu.we should always declare every class in its own file because it we will make the source short, simple, well organised and easy to understand.