回答編集履歴
2
コードに冗長な点があった為、ソース内コメントで説明(クラス内でインポートすれば import child1 as ch1 は不要だった)
answer
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
class MainWindow(ttk.Frame):
|
40
40
|
|
41
41
|
# 別ファイルで定義した関数を、インスタンスメソッドにする。
|
42
|
-
create_notebook = ch1.create_notebook
|
42
|
+
create_notebook = ch1.create_notebook # ここで from child1 import create_notebook でも良い
|
43
43
|
show_datalist = ch2.show_datalist
|
44
44
|
|
45
45
|
def __init__(self, parent):
|
1
紹介した分割方法について、オブジェクト指向もしくはPythonでの一般的な分割方法だと誤解を招かれないように補足を追記
answer
CHANGED
@@ -66,4 +66,10 @@
|
|
66
66
|
|
67
67
|
同じクラスのインスタンスメソッドとすることで、
|
68
68
|
self を通じて別ファイルで定義した関数を、メソッドとして呼び出す事が出来ます。
|
69
|
-
>メソッド呼び出し→selfを渡す関数呼び出し といった変更作業が不要になります。
|
69
|
+
>メソッド呼び出し→selfを渡す関数呼び出し といった変更作業が不要になります。
|
70
|
+
|
71
|
+
----
|
72
|
+
補足: 上記の分割方法について注意点
|
73
|
+
IDEやドキュメント生成ツールではメソッドと認識されない可能性があります。
|
74
|
+
あまり多用する分割方法ではなく、飽くまで「メソッドを関数にして (インスタンス)self を渡す」の代用です。
|
75
|
+
オブジェクト指向に於いては、役割毎に別クラスに分割するのが一般的です。
|