次のようなクラスがあるとしましょう:
class Test(object):
prop = property(lambda self: "property")
にアクセスしようとすると、記述子が優先されますTest().prop
。だからそれは戻り'property'
ます。オブジェクトのインスタンス ストレージにアクセスする場合は、次のようにします。
x = Test()
x.__dict__["prop"] = 12
print(x.__dict__["prop"])
ただし、クラスを次のように変更すると:
class Test(object):
__slots__ = ("prop",)
prop = property(lambda self: "property")
x
もう存在しないので、同じことを行い、 の内部ストレージにアクセスして書き込み12
と読み取りを行うにはどうすればよいx.__dict__
ですか?
私は Python にかなり慣れていませんが、Python の哲学は完全な制御を与えることであることを理解しています。
Python には、インスタンスの内部ストレージから読み取ることができる組み込み関数がありませんか?
instance_vars(x)["prop"] = 12
print(instance_vars(x)["prop"])
、および?を持たない組み込み型でvars
も機能することを除いて、これは のように機能します。__slots__
__dict__