プロパティがdeleted
のクラスがあります。ユーザーはob.delete()
メソッドを使用する必要があります。彼が直接ob.deleted = True
をやろうとすると、エラーが発生するはずです。属性を設定するときにスローエラーが発生する
class A(ORMBaseClass):
deleted = False
def delete(self):
self.deleted = True
a = A()
a.delete() # works
print(a.delete) # works
a.deleted = True # must throw exception
Exception: you cannot directly set deleted
私は__setattr__
を過負荷でそれを試してみましたが、それは同様にob.delete()
影響します。クラスは、ORMモデルであり、彼はsession.query(A).filter(A._deleted == True)
とa.deleted=True
のUXの矛盾に直面しているようob._deleted
プライベート属性を持つ
プロパティとob.deleted
プロパティは適していません。
私はPythonがこれを行うための完全な安全な方法を持っていないことを知っています。私はただ停止し、因果関係を設定したユーザーに通知したいだけです。このような
どのようなpythonを使用しますか? Arch Linux/x86-64のpython-3.6で問題を確認できません – user3159253
2.7/OsX –
@ user3159253と同じです。Ashish、ひどく書いてしまいましたが、既存のエラーはありません。私は混乱する言葉を修正した。 – aitchnyu