職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

クラスとアトリビュート(属性)

2021年04月20日 | Python
クラスとアトリビュート(属性)

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【アトリビュートについて】
下記のクラスでは、2つのインスタンスではアトリビュートの値は同じ
・例文1
Python 3.8.9 (tags/v3.8.9:a743f81, Apr 2 2021, 11:10:41) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> class MyClass:
num = 3


>>> c1 = MyClass()
>>> c2 = MyClass()
>>>
>>> c1.num
3
>>> c2.num
3
>>>
・例文2
>>> import MyClass
>>> c1 = MyClass.MyClass()
>>> c2 = MyClass.MyClass()
>>> c1.set_num(5)
>>> c1.my_num
5
>>> c2.set_num(8)
>>> c2.my_num
8
>>>
>>> c1.num
3
>>> c2.num
3
※MyClass.pyにクラスMyClassを保存した
class MyClass:
num = 3

def set_num(self,val):
self.my_num = val


例文3:インスタン属性とクラス属性
class MyClass:
num = 3→クラス属性
def set_num(self,val):
self.my_num = val
の所を
def set_num(self,val):
self.num = val→インスタン属性
に変えると
>>> c1.num
5
>>> c2.num
8
に成り、クラス属性が見えなくなってしまう
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする