回答編集履歴

4

説明追加

2019/12/12 09:29

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -7,3 +7,7 @@
7
7
  () をつけないと関数オブジェクトそのものを変数に代入します。関数処理は実行しません。
8
8
 
9
9
  () を付けると `__call__`メソッドを呼び出して関数処理を実行し、処理結果が変数に代入されます。
10
+
11
+
12
+
13
+ ボタン定義時のコールバック関数に()を付けてしまうと、ボタン生成前にボタンが押されたときの処理が実行されてしまい、その処理結果がボタンを押したときのコールバック関数だと勘違いして登録されます。

3

文言変更

2019/12/12 09:29

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,6 +1,6 @@
1
1
  PythonスクリプトはPythonインタープリタが読み込んで解釈しながら実行します。
2
2
 
3
- Pythonインタープリタが関数定義をみつけると、関数オブジェクトに変換して、オブジェクトの `__call__` メソッドに処理をコンパイルした実行コードを埋め込みます。
3
+ Pythonインタープリタが関数定義をみつけると、関数オブジェクトに変換して、オブジェクトの `__call__` メソッドに関数処理内容をコンパイルした実行コードを埋め込みます。
4
4
 
5
5
 
6
6
 

2

文言変更

2019/12/12 09:26

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -4,6 +4,6 @@
4
4
 
5
5
 
6
6
 
7
- () をつけないと関数オブジェクトそのものを変数に代入します。実行しません。
7
+ () をつけないと関数オブジェクトそのものを変数に代入します。関数処理は実行しません。
8
8
 
9
- () を付けると `__call__`メソッドを呼び出して処理を実行し、その実行結果が変数に代入されます。
9
+ () を付けると `__call__`メソッドを呼び出して関数処理を実行し、処理結果が変数に代入されます。

1

文言追加

2019/12/12 09:25

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,4 +1,4 @@
1
- PythonスクリプトはPythonインタープリタが実行します。
1
+ PythonスクリプトはPythonインタープリタが読み込んで解釈しながら実行します。
2
2
 
3
3
  Pythonインタープリタが関数定義をみつけると、関数オブジェクトに変換して、オブジェクトの `__call__` メソッドに処理をコンパイルした実行コードを埋め込みます。
4
4