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)も同じキーでアクセスできるように出来ないでしょうか?