19/02/24 22:22:06.63 mG+2Y3tM.net
pythonのクラスメンバへのアクセスのことで質問です
クラスのメンバに次の2通りの方法でアクセスしたいのです。
(1)ピリオドを使ってアクセスする
(2)辞書のようにアクセスする
それぞれ単独では実現できるのですが、両方同時に成立させる
ことが出来なくて困っています。
最初に(1)のために次のように実装してみます
class Foo():
def __init__(self, x):
sel.x = x
@property
def x(self):
return self.x
@x.setter
def x(self, x):
self.x=x
これだとエラーになるためxを_xにすると上手くいきます
しかしそうすると__dict__がxではなく_xをキーとしてしまうため
def __getitem__ を実装してもキーはxではなく_xになるため
f=Foo()とすると
(1)のアクセスは f.x
(2)のアクセスはf["_x"]
ということになってしまうのです。
(1)も(2)も同じキーでアクセスできるように出来ないでしょうか?