class foo( object ):
__result = []
def __init__( self, n, m ):
# self.__result = []
self.__result.append( n + m )
def func( self ):
print self.__result[0]
hoge = foo( 1, 2 )
fuga = foo( 3, 4 )
hoge.func() # 3
fuga.func() # 3 ... !?
数値や文字列といったメンバ変数は、コンストラクタで意図的に初期化してやらなくても正常な値になりますが、それ以外のオブジェクトや配列だと fuga は hoge のメンバと同じものになってしまいます。他の言語の感覚ですと、__result は foo のメンバな上にプライベートなので、fuga の __result が hoge.__result を指すのは考えられない事なのですが、この書き方がマズいのでしょうか。
また、もしこのようになっている理由等もありましたら、併せてお教えください。
No.1ベストアンサー
- 回答日時:
> class foo( object ):
> __result = []
クラス変数を定義してるのに、インスタンス変数と誤解しているのが敗因かと。
http://codepad.org/vwKCv0XY
参考URL:http://www.google.co.jp/search?hl=ja&q=python+%E …
ありがとうございます。まさに,おっしゃるとおりクラス変数/インスタンス変数という仕組みがある事を知らない事が敗因でした。また一つ勉強になりました。
# 複数のインスタンスからシームレスにアクセス可能なクラス変数の有用性を理解しつつも,変数のスコープやメンバ変数の記述性など,もっと根本的な記述性に疑問符が残りつつもありますが :D
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Ruby パイソンのクラスについて 3 2023/06/20 07:30
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
number_formatが勝手に四捨五入
-
PHP、ヒアドキュメント内でのIF...
-
PHPプログラム上で「URLを直接...
-
どういうプログラムを関数化を...
-
protectedなのにアクセスできな...
-
[C#]Arraylistに追加した構造体...
-
エラーの理由が分りません。Pri...
-
可変変数にアロー演算子を使いたい
-
Let's Encryptで自動更新がされ...
-
ExcelVBAで部分一致(*)をしたい
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
「取得先」という表現について
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
アクセスの度にIPアドレスを変...
-
バッチファイルで、全てのウィ...
-
【VBA】EXCELブックを開かずに...
-
DTOとEntityの差は何ですか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
PHPでの画像の形式の変換
-
VB.NETSystem.Xml 要素数を得る...
-
エラーの理由が分りません。Pri...
-
CSVファイルをブラウザのキャッ...
-
PHP、ヒアドキュメント内でのIF...
-
既存関数の上書き
-
【シェル】case文でワイルドカ...
-
PHPの変数値をリンクさせたい
-
可変変数にアロー演算子を使いたい
-
どういうプログラムを関数化を...
-
ExcelVBAで部分一致(*)をしたい
-
サブネットマスクを用いたIP制...
-
PHP Catchable fatal error の...
-
VB6のコンボボックスのテキスト...
-
protectedなのにアクセスできな...
-
[C++]std:mapの扱いを教えて頂...
-
次のhtml・cssでspan内の文字を...
-
classの再定義エラーについて
おすすめ情報