質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

8309閲覧

Python ファイル分割の目安と分割内容について

sin471

総合スコア50

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/10 13:29

ファイル分割の目安と内容

Pythonの勉強をしているのですが、ファイルの分割(モジュール化?)はどの程度までコードの規模が大きくなったら(行数が増えたら)するものなのでしょうか?
もしくは、何か他に分割するときの目安があるのか
教えていただきたいです

また、ファイルの分割はどういう塊で分けるものなのでしょうか
私はクラスのインスタンス化やメソッドの実行などはメインのファイルでやって、クラス本体をまるごと別のファイルに分割しているのですが、これでいいのか不安になっています
他に何か良い方法があれば教えていただきたいです

tkinterでの例

Python

1#example.py 2import tkinter as tk 3 4class Application(tk.Frame): 5 def __init__(self,master): 6 super().__init__(master) 7 self.pack() 8 def add(self,x): 9 x+=1 10 return x

Python

1import tkinter as tk 2import example 3 4root = tk.Tk() 5app = example.Application(master=root) 6app.add(3) 7app.mainloop()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

私はコードの規模ではなく、そのモジュールやクラスが何をするのか?を基準に分割します。
用途が明確であるほど可読性が上がり、デバッグやメンテナンスが楽になるので。

投稿2021/01/10 17:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

どう分けるかは、作る人の自由です。
Pythonの開発者達は、行数で分けることはしていません。
標準モジュールの行数を見てみると、一番長いのはpydoc_data/topics.pyで14080行あります。拡張モジュールまで含めると、astropy/erfa/core.pyが20337行あります。
短い方は、0 行の__innit
_.pyがたくさんあります。

shell

1$ find . -name '*.py' | xargs wc | sort | tail 2 13756 68915 675755 ./python3.8/pydoc_data/topics.py 3 20337 89208 656068 ./python3.8/site-packages/astropy/_erfa/core.py

モジュールは名前空間を持つオブジェクトですから、再利用性を上げるために外部から参照する必要のない名前を隠す一方、外部に公開する機能がまとまった単位で作るのが良いと、私は思っています。
言い換えれば、再利用しない、つまりライブラリ化しないコードは分ける必要はないと思っているということです。

投稿2021/01/10 14:46

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問