回答編集履歴

2

追記

2018/04/25 07:45

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -47,3 +47,13 @@
47
47
  SampleS()
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ ### 追記
54
+
55
+ できるだけ「どうして」ではなく、自分で考えるか調べましょう。
56
+
57
+ また、これはとても基礎的なことなので、まともな入門書を一冊買って読み込み、ちゃんと理解すればそもそも質問しなくて済むことです。
58
+
59
+ 自力でやらないといつまで経っても上達しませんよ、とは書いておきます。

1

追記

2018/04/25 07:45

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -3,3 +3,47 @@
3
3
 
4
4
 
5
5
  引数の個数を合わせるためには、self.Sample(self.l)はself.Sample()とする必要があります。それか、self.Sampleの定義にもう一つ引数を増やしてそっちを使います。selfの属性でやりとりしても良いでしょう。
6
+
7
+
8
+
9
+ 一応標準と同じ出力になるように書き換えましたが、どうしてこうしたいのかはよくわからなかったので、普通に関数で書けば良いと思います(再帰はともかく・・・このようなクラスを作ってもメリットはない)。
10
+
11
+
12
+
13
+ ```python
14
+
15
+ class SampleS:
16
+
17
+ def __init__(self):
18
+
19
+ self.r=[]
20
+
21
+ self.l=[1,[2,[[3],4]],5,[6,[[7,8],9]]]
22
+
23
+
24
+
25
+ self.Sample(self.l)
26
+
27
+ print(self.r)
28
+
29
+
30
+
31
+ def Sample(self, arg):
32
+
33
+ for i in arg:
34
+
35
+ if isinstance(i,list):
36
+
37
+ self.Sample(i)
38
+
39
+ else:
40
+
41
+ self.r.append(i)
42
+
43
+
44
+
45
+ if __name__ == '__main__':
46
+
47
+ SampleS()
48
+
49
+ ```