中学理科1630528 views
MathPython497169 views
高校物理160088 views
小学理科719796 views
小学社会310458 views
教育149497 views
中学社会668702 views
高校化学2924053 views
英語613463 views
高校生物551706 views

Pythonのオブジェクトからインスタンス変数を確認する:__dict__ではクラス変数は確認できない

Python のオブジェクトからインスタンス変数を確認するには __dict__ を使う。これはインスタンス変数の名前と値を辞書で返す。

class Book:
    category = 'プログラミング'

    def __init__(self, price, quantity):
        self.price = price
        self.quantity = quantity
        self.sale = 0

    def get_sale(self):
        self.sale = self.price * self.quantity


book = Book(300, 4)
print(book.__dict__)

出力結果

{'price': 300, 'quantity': 4, 'sale': 0}

辞書が返ってきた。どれもインスタンス変数であるが、クラス変数 category が入っていない。