[解決済み] Python - なぜクラスで "self" を使うのか?
2023-04-21 19:18:57
疑問点
この2つのクラスはどのように違うのですか?
class A():
x=3
class B():
def __init__(self):
self.x=3
大きな違いはあるのでしょうか?
どのように解決するのですか?
A.x
は
クラス変数
.
B
's
self.x
は
インスタンス変数
.
すなわち
A
's
x
はインスタンス間で共有されます。
リストのような変更可能なもので違いを示すのが簡単でしょう。
#!/usr/bin/env python
class A:
x = []
def add(self):
self.x.append(1)
class B:
def __init__(self):
self.x = []
def add(self):
self.x.append(1)
x = A()
y = A()
x.add()
y.add()
print("A's x:", x.x)
x = B()
y = B()
x.add()
y.add()
print("B's x:", x.x)
出力
A's x: [1, 1]
B's x: [1]
関連
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] Pythonで標準エラー出力するには?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] PyMongoで.sortを使用する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonで明示的な'self'を避けるには?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] バブルソートの宿題
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?