###■前提・概要
Pythonで以下のような似た処理をまとめたいと考えており、
同一処理に特定の項目のみを追加していきたいと思っています。
継承で処理をまとめ継承先(サブクラス)のリストを追加する際に想定していた動作と違うため
ご教示頂きたくお願いします。
Python
1#下記の様にほぼ同一処理を行いたい 2#変数に格納 3user_name = "山田太郎" 4mail = "test@google.com" 5password = "12345" 6 7#配列に格納 8info_list = [ 9 user_name, 10 mail, 11 password 12 ] 13 14 15#変数に格納(idのみ追加) 16user_name = "山田太郎" 17mail = "test@google.com" 18password = "12345" 19id = 5 20 21#配列に格納(idのみ追加) 22info_list = [ 23 user_name, 24 mail, 25 password, 26 id 27 ] 28 29
###■該当のソースコード
python
1#main.py 2from func import BaseClass,SubClass 3 4#基底クラスのインスタンス生成 5info = BaseClass() 6info.input_list_run() 7input_list=info.get_iput_list() 8 9print(input_list) 10print("--------------------") 11 12#サブラクスのインスタンス生成 13info_sub = SubClass() 14info_sub.edit_list_run() 15edit_list=info_sub.get_edit_list() 16print(edit_list) 17 18 19 20
python
1#func.py 2class BaseClass: 3 def input_var(self): 4 #変数に格納 5 self.user_name = "山田太郎" 6 self.mail = "test@google.com" 7 self.password = "12345" 8 9 def input_list(self): 10 #配列に格納 11 self.input_list = [ 12 self.user_name, 13 self.mail, 14 self.password 15 ] 16 17 def input_list_run(self): 18 self.input_var() 19 self.input_list() 20 21 22 def get_iput_list(self): 23 return self.input_list 24 25 26class SubClass(BaseClass): 27 def edit_var(self): 28 #基底クラスのinput_varを呼ぶ 29 super().input_var() 30 self.id = 5 31 32 def edit_list(self): 33 #基底クラスのinput_listを呼ぶ 34 super().input_list() 35 self.edit_list = self.input_list 36 self.edit_list = self.edit_list.append(self.id) 37 38 def edit_list_run(self): 39 self.edit_var() 40 self.edit_list() 41 42 43 def get_edit_list(self): 44 return self.edit_list 45 46 47
###上記の結果
python
1 2['山田太郎', 'test@google.com', '12345'] 3-------------------- 4None 5 6#上記のNoneを下記にしたい 7#['山田太郎', 'test@google.com', '12345',5] 8 9
基底クラスは想定していた動きですがサブクラスが「None」になり、どの様にすれば良いかご教示頂きたくお願い致します。
サブクラスの結果では['山田太郎', 'test@google.com', '12345',5]にしたいと思っています。
サブクラスのedit_listメソッド内でのappend関数の所でリストがNoneになっています。
(直前まではリストが見える事は確認しています。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/21 10:46