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ランキング
-
パソコンのスクリーンセーバー...
-
ビーリアルのユーザー名を変え...
-
100万件越えCSVから条件を満た...
-
(再質問)エクセルのマクロボ...
-
pandasでsqlite3にテーブル作成...
-
C言語の入力した文字を反転させ...
-
VBA
-
C++のCreateFile関数で、ASCII...
-
WinSCPで画像のように puttyを...
-
1、Rstudioで回帰直線を求める...
-
英数字を含む文字列(0-9,A-Z)...
-
7セグメント LED ディスプレイ ...
-
【メモリ不足で落ちる(python)】
-
Accessで文字列のバイト数読み込み
-
三項でたとえば交換って
-
Ruby on railsをrails sで立ち...
-
プログラミング
-
パイソンエラーについて
-
パイソンでテキストファイルが...
-
pythonエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パイソンのクラス
-
No route matches [GET] "/post...
-
Rubyについて質問です
-
クラス名やモジュール名の競合...
-
HSTLやSSTL等のI/Oピン
-
What class are you in? には何...
-
テンプレートの特殊化でコンパ...
-
railsのlink_toに動的なclass指定
-
変数の隠蔽とは?
-
redirect先でredirect元の変数...
-
2つのクラスがお互いのポイン...
-
class roomとclassroom どちら...
-
特定のactionでのみvalidation
-
インスタンス内から自分のクラ...
-
Rails3 taskでDBのデータを参照...
-
構造体を使ったプログラム
-
下線部の答え教えてください こ...
-
【ruby】特異クラスを使って,Fi...
-
get() と find() の違いについて
-
「arg」は何の略?
おすすめ情報