开发者

How should I organize Python source code? [closed]

开发者 https://www.devze.com 2022-12-13 18:09 出处:网络
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing
Closed. This question is opinion-based. It is not currently accepting answers.

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 8 years ago.

Improve this question

I'm getting started with Python (it's high time I give it a shot), and I'm looking for some best practices.

My first project is a queue which runs command-line experiments in multiple threads. I'm starting to get a very long main.py file, and I'd like to break it up. In general, I'm looking for: How do python programmers organize multiple source files? Is there a particular开发者_C百科 structure that works for you?

My specific questions include:

  1. Should each class be in a separate file?
  2. How should I organize unit tests relative to source code?
  3. Where should I put doc comments, specifically those for command-line operation?
  4. If I use multiple directories, how do I import classes between them?

I can probably draw some of my own conclusions here by trial and error, but I'd rather start from something good.


The article Eric pointed to is awesome because it covers details of organising large Python code bases.

If you've landed here from Google and are trying to find out how to split one large source file into multiple, more manageable, files I'll summarise the process briefly.

Assume you currently have everything in a file called main.py:

  • Create another source file in the same folder (let's call ours utils.py for this example)
  • Move whatever classes, functions, statements, etc you need from main.py into utils.py
  • In main.py add a single line at the top: import utils

Conceptually what this does is to create a new module called utils in another source file. You can then import it wherever it's needed.


The way you should organise your code and tests is exactly the same you would for any OO language.

Answers from the way I do it. It may not be right but works for me

  1. Depends on how your functionality is split. For my main python app I have 1 file with classes for the entry points and then packages of different bits of functionality
  2. I use PyDev for eclipse and organise it like I would for Java.
>  Workspace
>     |
>     |-Src
>     |   |-Package1
>     |   |-Package2
>     |   |-main.py
>     |-Test
>         |-TestPackage1
>         |-TestPackage2
  1. Use DocString everywhere to keep track of everything
  2. After making sure that the relevant __init__.py files are in the folders. its just a simple case of from module import class
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号