python 基本 備忘録20221212自分用メモ

python素人です。
プログラム素人です。

以下、自分メモなので、分かりにくくてすみません。

 

pythonで単方向リストを考えてみた。
単方向リストを作るには、「クラス」を作るのがいいらしい。

アメリカの大学で奮闘中様の
「連結リスト(Linked List)を大学生が解説してみた by python」のコードが分かりやすかった。
(感謝)

 

ここにはコードは書きませんが、
引っかかったのが
class LinkedList:
の誤植(入力ミス)やインデントくらい。

プログラムのクラスに
    def printList(self): 
        temp = self.head 
        while temp: 
            print(temp.payload) 
            temp = temp.next
をつけ、
最後に、
links.printList()
と付けたら、格納された数字が確認できた。

上記これを基礎に少し勉強するかな。

********************
で、今後することの前に、事前知識。(素人です)
pythonについて
CやJavaコンパイルを必要とする言語です。 
一方、Pythonコンパイルが不要なので書いたコードを1行ずつ実行します。
つまり、書いたコードが実行できるか、エラーかどうかがすぐに分かるということです。
インタプリタ言語

pythonについて
C++Java・・・オブジェクト指向
pythonオブジェクト指向も可能。


****************クラスの書き方1
classクラスの定義:
    その中に関数を定義(selfと書く):

+++++++++++++++++++++++++++++++
コード(実際の命令)
変数=クラス名
変数.関数名()

↑変数に代入して、実際のオブジェクトを作る(インスタンス化)。
↑変数.関数名()でクラス内の関数が使える(メソッド)


===============(クラスの初期化)
classクラスの定義:
    def __ init__(self):
        ○○
↑初期化メソッドは、クラスがインスタンス化されたら、最初に実行される。


===============(クラスの初期化での設定例)
classクラスの定義:
    def __ init__(self, name):
        self.name = name
        print(self.name)

↑nameは変数。(インスタンス変数)

+++++++++++++++++++++++++++++++++++++++(上記を実行)
コード(実際の命令)
変数=クラス名("taro")

↑クラスの初期化で"taro"を引数で渡して、クラスをインスタンス化。
======================================
実行結果
→taroを表示
(参考)
この引数は、他のメソッドでも使用可能。
クラスの初期化定義の
self.name = name
nameを引数にしなくても、固定の値を代入でもいい。


******************クラスの書き方2
class クラス名():
    def __ init__(self):    

    ↑この文言はコンストラクタというらしい。

    def メソッド(self):

    ↑このようなメソッドが続く。

    def __ del__(self):

    ↑クラスの最後にデストラクタが出る。


init__(self):とdef __ del__(self):は、
実際の命令
変数=クラス名
変数.関数名()
の変数.関数名()がなくても、
変数=クラス名だけで動く。

デストラクタは、一番最後に動く。

メソッドはselfを書く。