teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

情報の修正

2019/09/14 11:49

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -75,9 +75,7 @@
75
75
  ③また、両方の初期化を省略すると、上手くいきます。
76
76
  ```ここに言語を入力
77
77
  class GameBoard(tk.Canvas):
78
- def __init__(self,app):
79
- tk.Canvas.__init__(self)
78
+ pass
80
-
81
79
  ```
82
80
 
83
81
 

5

情報の追加

2019/09/14 11:49

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -9,10 +9,14 @@
9
9
  初期化しないとエラーになるのは、判明しています。
10
10
  なぜ、親クラスを初期化しないといけないのか、教えていただきたいです。
11
11
 
12
+ **追加**
12
13
 
13
14
 
14
15
 
15
16
 
17
+
18
+
19
+
16
20
  ### 該当のソースコード
17
21
 
18
22
  ``````Python
@@ -53,10 +57,37 @@
53
57
  親クラスの初期化は引数はなくても問題ないですが、
54
58
  初期化しないとエラーになります。
55
59
 
60
+ ①例えば、引数(app)をとらない場合、これはエラーがでません。
56
61
 
62
+ ```ここに言語を入力
63
+ class GameBoard(tk.Canvas):
64
+ def __init__(self,app):
65
+ tk.Canvas.__init__(self)
66
+
67
+ ```
68
+ ②次に、親クラスの初期化省略はエラーになります。
69
+
70
+ ```ここに言語を入力
71
+ class GameBoard(tk.Canvas):
72
+ def __init__(self,app):
73
+ pass
74
+ ```
75
+ ③また、両方の初期化を省略すると、上手くいきます。
76
+ ```ここに言語を入力
77
+ class GameBoard(tk.Canvas):
78
+ def __init__(self,app):
79
+ tk.Canvas.__init__(self)
80
+
81
+ ```
82
+
83
+
84
+
57
85
  ### エラーメッセージ
58
86
 
59
87
  ```
88
+ **上述の②の場合のエラーメッセージです**
89
+
90
+
60
91
  Traceback (most recent call last):
61
92
  File "C:\Users\xxx\OneDrive\デスクトップ\個人\0.PG\IDLE\canvas.py", line 27, in <module>
62
93
  tetgame = TetGame(app,400,300)

4

情報の追加

2019/09/14 11:47

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,18 @@
51
51
  ### 試したこと
52
52
 
53
53
  親クラスの初期化は引数はなくても問題ないですが、
54
- 初期化しないとエラーになります。
54
+ 初期化しないとエラーになります。
55
+
56
+
57
+ ### エラーメッセージ
58
+
59
+ ```
60
+ Traceback (most recent call last):
61
+ File "C:\Users\xxx\OneDrive\デスクトップ\個人\0.PG\IDLE\canvas.py", line 27, in <module>
62
+ tetgame = TetGame(app,400,300)
63
+ File "C:\Users\xxx\OneDrive\デスクトップ\個人\0.PG\IDLE\canvas.py", line 14, in __init__
64
+ gameboard.place(x=10,y=10)
65
+ File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2186, in place_configure
66
+ self.tk.call(
67
+ AttributeError: 'GameBoard' object has no attribute 'tk'
68
+ ```

3

文法の修正

2019/09/14 11:16

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  親クラスを初期化して引数を渡さないといけない理由が分かりません。
8
8
 
9
9
  初期化しないとエラーになるのは、判明しています。
10
- なぜ、親クラスを初期化しないといけないのか、教えて欲しいです。
10
+ なぜ、親クラスを初期化しないといけないのか、教えていただきたいです。
11
11
 
12
12
 
13
13
 

2

書式の変更

2019/09/14 09:07

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,5 @@
1
+ ### 前提・実現したいこと
2
+
1
3
  「テトリス風ゲーム作りで学ぶ初めてのPython(標準モジュール)プログラミング」という書籍で分からない部分があるので教えていただきたいことがあります。下記がサンプルになるのですが、
2
4
 
3
5
  class GameBoardでtk.Canvasクラスを継承しているということは、
@@ -9,7 +11,11 @@
9
11
 
10
12
 
11
13
 
14
+
15
+
16
+ ### 該当のソースコード
17
+
12
- ```Python
18
+ ``````Python
13
19
  import tkinter as tk
14
20
 
15
21
  class GameBoard(tk.Canvas):
@@ -39,4 +45,10 @@
39
45
  tetgame = TetGame(app,400,300)
40
46
  app.mainloop()
41
47
 
42
- ```
48
+ ```
49
+
50
+
51
+ ### 試したこと
52
+
53
+ 親クラスの初期化は引数はなくても問題ないですが、
54
+ 初期化しないとエラーになります。

1

誤字の修正

2019/09/14 08:39

投稿

hoge_hoge_PG
hoge_hoge_PG

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 「テトリス風ゲーム作りで学ぶ初めてのPython(標準モジュール)プログラミング」という書籍で分からない部分で教えていただきたいことがあります。下記がサンプルになるのですが、
1
+ 「テトリス風ゲーム作りで学ぶ初めてのPython(標準モジュール)プログラミング」という書籍で分からない部分があるので教えていただきたいことがあります。下記がサンプルになるのですが、
2
2
 
3
3
  class GameBoardでtk.Canvasクラスを継承しているということは、
4
4
  GameBoardのインスタンスでもplaceメソッドを利用できるはずだと思うのですが、
@@ -8,6 +8,7 @@
8
8
  なぜ、親クラスを初期化しないといけないのか、教えて欲しいです。
9
9
 
10
10
 
11
+
11
12
  ```Python
12
13
  import tkinter as tk
13
14