
class SimpleData:
a = 0
b = 5
def set(self, a, b):
self.a = a
self.b = b
def sum(self):
return self.a + self.b
data3 = SimpleData()
data1 = SimpleData()
data1.set(8, 2)
print(data1.sum())
print(data3.sum())
とすると 答えが
10
5
と出るんですが、どうして(なにをもって振り分けて)
a = 0
b = 5
a = 8
b = 2
の場合を振り分けて合計するのかわからない。
お教えください。
No.1ベストアンサー
- 回答日時:
class SimpleData:で定義された
a = 0
b = 5
はクラス変数といいますが、
def set(self, a, b):
self.a = a
self.b = b
のself.a、self.bはインスタンス変数といって、クラス変数a,bとは別物です。
def sum(self):
return self.a + self.b
で、self.a + self.bは
インスタンス変数があれば、インスタンス変数a,bを参照します。
無ければ、クラス変数a,bを参照します。
data1は、data1.set(8, 2)によりインスタンス変数が生成されているので、
8と2を参照し、結果として10になります。
data3はインスタンス変数が生成されていないので、クラス変数を参照し、
結果として5になります。
個人的には、クラス変数とインスタンス変数は同じ名前を使用しないほうが
無難かと思います。
No.2
- 回答日時:
振り分け?
別に振り分けてないでしょ。
作成したdata1とdata3は「別物」です。
data1のインスタンス変数を変更してもdata3は「影響を受けない」。
それだけです。
言い換えると「同じ枠組みを使ってもインスタンスを生成した時点で別物」にするためにオブジェクト指向、と言う考え方が出てきてます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Ruby パイソンのクラスについて 3 2023/06/20 07:30
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- PHP 「SELECT文の発行」と書かれいるだけで「解説」見当たりません? 1 2022/02/01 05:17
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- 数学 線形独立と線形従属 4 2021/11/02 08:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(再質問)エクセルのマクロボ...
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ルビー言語 ライブラリー 追記
-
ruby while式
-
ruby クラス・オブジェクト・イ...
-
教えてください
-
パイソンエラーについて
-
英数字を含む文字列(0-9,A-Z)...
-
Rubyで掲示板は作れますか
-
初心者プログラミング
-
7セグメント LED ディスプレイ ...
-
C言語の入力した文字を反転させ...
-
pandasでsqlite3にテーブル作成...
-
VBScriptでExcel(2019)上のデー...
-
ruby raise句
-
ruby begin句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
What class are you in? には何...
-
クラス名やモジュール名の競合...
-
Rubyの正規表現を引数に
-
住所の追加について
-
動的配列の構造体の受け渡しに...
-
プログラミングRubyについての...
-
No route matches [GET] "/post...
-
HSTLやSSTL等のI/Oピン
-
Ruby
-
次のDelphiプログラムで
-
Visualurubyのラジオボタンにつ...
-
pythonのerrorコード
-
【ruby】特異クラスを使って,Fi...
-
【ruby】【文法】スパークラス...
-
【ruby】クラスCGIを改造して、...
-
パイソンのクラス
-
syntax error 一行で書くと
-
Ruby Vectorの===変更の問題
-
class roomとclassroom どちら...
-
redirect先でredirect元の変数...
おすすめ情報