【发布时间】:2011-06-25 04:24:51
【问题描述】:
基类有这个:
def _management_form(self):
# code here
return form
management_form = property(_management_form)
在我的派生类中,我正在尝试这样写:
self.management_form = self.myfunc()
但它当然行不通。它告诉我“无法设置属性”,因为该属性没有设置器。但我不想设置它,我想重新定义“managent_form”的含义。我尝试将del self.managent_form 放在首位,但这也不起作用。那么如何取消属性化呢?
【问题讨论】:
-
你确定这是个好主意吗?这听起来像是打破了一种关系......
-
好吧,定义属性的方式,每次使用它时都会重建对象,这很愚蠢。我在那里放了一个打印语句,它被调用了 10 次,它会导致问题,因为我需要修改它的一些属性,但是如果下次使用它时要被替换它是徒劳的。我不知道他们(Django 开发人员)为什么这样做。基本上,我只希望它构建一次,然后从那时起返回该实例。
标签: python properties