Python 您如何拥有一个名为“quot”的属性;不动产;使用@property装饰器?
我有点问题,我尝试过谷歌搜索,但没有发现任何有用的东西 我正在设计一个django应用程序,我想要/需要一个名为“property”的字段。原因是这是我试图管理的东西的技术名称,如果可能的话,我希望保留业务术语 现在这已经不是问题了。。。直到现在 我现在需要有一个方法,我希望能够将其用作属性,但在使用令牌Python 您如何拥有一个名为“quot”的属性;不动产;使用@property装饰器?,python,django,properties,built-in,Python,Django,Properties,Built In,我有点问题,我尝试过谷歌搜索,但没有发现任何有用的东西 我正在设计一个django应用程序,我想要/需要一个名为“property”的字段。原因是这是我试图管理的东西的技术名称,如果可能的话,我希望保留业务术语 现在这已经不是问题了。。。直到现在 我现在需要有一个方法,我希望能够将其用作属性,但在使用令牌属性时存在一些冲突 class DataElementConcept(trebleObject): template = "polls/dataElementConcept.html"
属性时存在一些冲突
class DataElementConcept(trebleObject):
template = "polls/dataElementConcept.html"
objectClass = models.ForeignKey(ObjectClass,blank=True,null=True)
property = models.ForeignKey(Property,blank=True,null=True)
@property
def registryCascadeItems(self):
return [self.objectClass,self.property]
我理解这个错误
File "/home/theodore/Github/possum-mdr/polls/models.py", line 381, in DataElementConcept
@property
TypeError: 'ForeignKey' object is not callable
是否有办法将此方法视为属性,并保留属性
属性?使用内置属性的“完全限定”名称:
import __builtin__
@__builtin__.property
def registryCascadeItems(self): ...
当然,我引用了“完全合格”这个术语,因为这不是一个python术语。python中没有名称限定。实际上,这只是另一个定义原始属性并可以访问的地方
这也让你的代码更具可读性。毫无疑问,这涉及到什么类型的财产——您明确地提到了内置财产。也许这有助于:
# On the module-level, do a workaround reference
# as property() is just a normal built-in function
_property = property
class Foobar:
property = ....
@_property
def registryCascadeItems(self):
....
(您需要导入模块才能执行此操作。)