【发布时间】:2015-10-31 09:45:57
【问题描述】:
我正在尝试将 oauthlib 实现重新设计为金字塔应用程序,但在 @property 装饰类定义中遇到了一些默认值问题。
我以某种方式暴露了属性对象,而不是调用/执行它们。
谁能提出一个“执行”这些属性的好方法?似乎用任何对象调用fget/无:
self.propertyname.fget(self)
但这似乎很尴尬——就像整个问题一样。我似乎以错误的方式实现了某些东西。
这个问题的上下文是尝试从配置字典中加载一些值并返回到基类的属性上。基本形式如下,我们很乐意接受有关更好实施的建议。
class Parent(object):
@property
def fieldname(self):
"""returns a tuple"""
return (1, 10)
class Child(Parent):
@property
def fieldname(self):
"""returns a tuple"""
return self._config.get('fieldname',
Parent.fieldname
)
【问题讨论】:
-
你试过
super(Child, self).fieldname吗? -
“我以某种方式暴露了属性对象,而不是调用/执行它们。” - 那是什么意思?您现在如何在代码中调用它们,发生了什么,应该发生什么?
-
我正在调用
Parent.fieldname,它返回一个属性对象(即<property object at 0x1007a5788>)。我打算打电话给Parent().fieldname,但是使用super()效果更好。
标签: python python-2.7 properties descriptor