你如何拥有一个名为"property"的属性并使用@property装饰器?

6 python django properties built-in

我有点问题,我试过谷歌搜索,但它没有任何帮助.

我正在设计一个django应用程序,我想/需要一个名为"property"的字段.这样做的原因是,是的,我想管理,我想如果可能的话,以保持业务术语事物的技术职称.

现在这已经不是问题......直到现在.

我现在需要一个方法,我希望能够用作属性,但是使用令牌会有一些冲突property.

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]
Run Code Online (Sandbox Code Playgroud)

我明白这个错误是可以理解的.

  File "/home/theodore/Github/possum-mdr/polls/models.py", line 381, in DataElementConcept
    @property
TypeError: 'ForeignKey' object is not callable
Run Code Online (Sandbox Code Playgroud)

有没有办法让我将此方法视为属性,并保留property属性?

Mik*_*maa 8

也许这有助于:

# 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):
       ....
Run Code Online (Sandbox Code Playgroud)


shx*_*hx2 5

使用内置属性的"完全限定"名称:

import __builtin__

@__builtin__.property
def registryCascadeItems(self): ...
Run Code Online (Sandbox Code Playgroud)

当然,我使用了"完全合格"一词的引用,因为这不是一个pythonic术语.python中没有名称资格.这究竟是什么,只是原始property定义并可以访问的另一个地方.

恕我直言,这也使您的代码更具可读性.毫无疑问涉及什么样的财产 - 你明确地提到了内置财产.