質問編集履歴

5

2020/02/10 14:16

投稿

esklia
esklia

スコア81

test CHANGED
@@ -1 +1 @@
1
- default値でリスト空になる
1
+ python:毎回リスト空になるように関数を定義するには
test CHANGED
File without changes

4

a

2020/02/10 14:16

投稿

esklia
esklia

スコア81

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,10 @@
1
1
  本中に詳細な説明がなかったので質問します。入門python3p116からです。
2
2
 
3
- 下記コードは呼び出すと毎回空のリストになっていますが、その理由は
3
+ 下記コードは呼び出すと毎回空のリストになっていますが、
4
4
 
5
+
6
+
5
- 「仮引数`result`のdefaultNoneに設定さていて毎回それを最初に読み込むから」しょうか?だとしたらresultにappendされた1はNoneに上書き(定義されなた後)条件分岐で`result =[]`適用されてからのリストになるう感じしょうか?
7
+ **最初に関が実行されると`result=None`ではなくなるで(resultに要素与えらるの)、`if result is None:`の条件を満たず、リストの中がリセットされないのではないでょうか?そうするとどうしてresultの要素毎回リセットされているような挙動になるのか教えてただきたいす。**
6
8
 
7
9
 
8
10
 
@@ -29,21 +31,3 @@
29
31
  [3]
30
32
 
31
33
  ```
32
-
33
-
34
-
35
- 追記
36
-
37
- おそらくデフォルト値の解釈を誤解してました。
38
-
39
- ```
40
-
41
- def nonbuggy(arg, result=[]):
42
-
43
- result.append(arg)
44
-
45
- print(result)
46
-
47
- ```
48
-
49
- のコードで最初に`result=[]'が読み込まれるわけではなく、あくまで何も実引数が与えられなかったときにresult=[]となるだけなので上記の解釈も間違っていそうです。どなたか教えてくださると幸いです。

3

2020/02/10 14:15

投稿

esklia
esklia

スコア81

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  下記コードは呼び出すと毎回空のリストになっていますが、その理由は
4
4
 
5
- 「仮引数`result`のdefault値がNoneに設定されていて毎回それを最初に読み込むから」でしょうか?だとしたらresultにappendされた1はNoneに上書き(定義されなおした後)条件分岐で`result =[]`が適用されてからのリストになるという感じでしょうか?ご教授お願い致します。
5
+ 「仮引数`result`のdefault値がNoneに設定されていて毎回それを最初に読み込むから」でしょうか?だとしたらresultにappendされた1はNoneに上書き(定義されなおした後)条件分岐で`result =[]`が適用されてからのリストになるという感じでしょうか?
6
6
 
7
7
 
8
8
 
@@ -29,3 +29,21 @@
29
29
  [3]
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ 追記
36
+
37
+ おそらくデフォルト値の解釈を誤解してました。
38
+
39
+ ```
40
+
41
+ def nonbuggy(arg, result=[]):
42
+
43
+ result.append(arg)
44
+
45
+ print(result)
46
+
47
+ ```
48
+
49
+ のコードで最初に`result=[]'が読み込まれるわけではなく、あくまで何も実引数が与えられなかったときにresult=[]となるだけなので上記の解釈も間違っていそうです。どなたか教えてくださると幸いです。

2

2020/02/10 14:11

投稿

esklia
esklia

スコア81

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  下記コードは呼び出すと毎回空のリストになっていますが、その理由は
4
4
 
5
- 「仮引数`result`のdefault値がNoneに設定されていて毎回それを最初に読み込むから」でしょうか?だとしたらresultにappendされた1Noneは混在してになりそうですが…ご教授お願い致します。
5
+ 「仮引数`result`のdefault値がNoneに設定されていて毎回それを最初に読み込むから」でしょうか?だとしたらresultにappendされた1Noneに上書き(定義されなおた後)条件分岐で`result =[]`が適用されてからのリストに感じしょうか?ご教授お願い致します。
6
6
 
7
7
 
8
8
 

1

2020/02/10 14:07

投稿

esklia
esklia

スコア81

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  下記コードは呼び出すと毎回空のリストになっていますが、その理由は
4
4
 
5
- 「仮引数`result`のdefault値が設定されていて毎回それを最初に読み込むから」でしょうか?
5
+ 「仮引数`result`のdefault値がNoneに設定されていて毎回それを最初に読み込むから」でしょうか?だとしたらresultにappendされた1とNoneは混在しておかしなことになりそうですが…ご教授お願い致します。
6
6
 
7
7
 
8
8