Python学習6日目(3/24)制作過程で生じた疑問を元に、基本を学び直す

モチベが他のことに吸われたり気落ちしていてできていませんでしたが、今日から再開します。

今回は前回実装しなかった、結果を画面に表示させる処理を加えていきます。

そのためのレイアウトも改変します。


処理終了

3桁ではない時に◎を押された時に処理を行わないために、returnを追加

https://pg-chain.com/python-exit-return


def result():

   print("判定チェックが走る")
   check_num = var1.get()

   if len(check_num)<3:
       print("3桁ではありません")
       return

スクロールバー作成

hit,blowの履歴を残すために作ります。

ゲームが続けば画面を超える可能性があるのでスクロールバーで動かせるようにします。

参考サイト

https://wynn-blog.com/python-gui-tkinter-scrollbar




やってみたものの。。。

レイアウトを追加するとなると、row,columnで指定していた部分をいじる必要がありますが、このフレームを置く場合にいまいちどういじっていいかが分からない。。。

とりあえず足し算方式で組み上げてみたものの、各々の理解不足のために改変する時に困ってしまった

とりあえずこれは応用編として、他のことを先に終わらせてしまうことにする

クラスにする

トップ画面→遊ぶ文字数(3~5)を指定→実行!としたくて、3~5の数値を関数に送って実行するという流れにしたい

また、まとめてしまったほうが良いと思ったので、一回まとめてみることにする


今までは教科書を眺めるように1から学んでいたが、受動的すぎて頭に入ってこなかった

こうして問題点が生まれ、それを解決するという目的があって初めて頭に残ると思うので、いい傾向だと思う

まずはクラスの使い方が曖昧なので整理する

https://www.sejuku.net/blog/28182

コンストラクタとは、「__init__」という名前の部分です。コンストラクタは、インスタンスを作成する際に重要な処理を含むものです。
どのように生成するか、どのようなデータを持たせるかなど、といった情報を定義するのに必要なメソッドになります。

ふむふむ、なんとなくは使っていたものの__init__は必要なのね。


とりあえず文字だけ変えて書いてみた

class TestClass():
   def __init__(self,test):
       self.aa = test
class TestClass2():
   def __init__(self,a,b,c):
       self.num1 = a
       self.num2 = b
       self.num3 = c
   def print_tot(self):
       tot = self.num1 +self.num2 + self.num3
       print(tot)
instance = TestClass("testdayo")
print(instance.aa)
instance2 = TestClass2(2,3,4)
instance2.print_tot()




self周りがよくわからんな~と思って調べてみたら、似たような疑問を抱いた人が居た

https://teratail.com/questions/10814


ただ抽象的だったので深堀りしてみる

https://www.sejuku.net/blog/64106

深く考えすぎず、付けるものだと思って慣れるのが一番かな~と思いました。

習うより慣れろ。



ちょっと疲れたので休憩がてら、ボタンでコードを動かしたり、テキストボックスとかを一通りやりたくなってきたのでやることにします。




この記事が気に入ったらサポートをしてみませんか?