1. ホーム
  2. python

[解決済み] Pythonにおけるメソッドと属性の違い

2022-02-18 18:58:30

質問

Pythonを学習中で、クラスについての演習を行っています。クラスにはnd属性を、クラスにはメソッドを追加するように書かれています。私は演習を読むまで、これらは同じものであるとずっと思っていました。この2つの違いは何ですか?

どのように解決するのですか?

用語解説

メンタルモデル。

  • A 変数 インスタンスやクラスに格納されているものを 属性 .
  • A 機能 インスタンスやクラスに格納されているものを メソッド .

Pythonの用語集によると。

属性 : で参照されるオブジェクトに関連付けられた値。 の名前をドット式で表す。例えば、あるオブジェクトoに 属性 a は o.a と参照されます。

メソッドを使用します。 クラス本体内で定義される関数。として呼び出された場合 そのクラスのインスタンスの属性で、そのメソッドは インスタンスオブジェクトを第1引数(通常はselfと呼ばれる)とする。 関数とネストされたスコープを参照。

実際のコードに適用される用語。

a = 10                          # variable

def f(b):                       # function  
    return b ** 2

class C:

    c = 20                      # class attribute

    def __init__(self, d):      # "dunder" method
        self.d = d              # instance attribute

    def show(self):             # method
        print(self.c, self.d) 

e = C(30)
e.g = 40                        # another instance variable