Python中的实例属性getter

2024-06-26 14:04:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试为类属性编写自定义getter。但我无法在Python中找到正确的语法。我尝试了this问题中提到的内容,但使用@property装饰器似乎不起作用,或者我的调用不正确

类别:

class Comment:
  def __init__(self):
    self.productRecommender = None

  @property
  def productRecommender(self):
    return self.productRecommender if self.productRecommender is not None else 'Onbekend'

如果找不到类,则在代码中设置属性(使用Selenium,comment是comment()的实例)应保持None

try:
  comment.recommender = comment.find_element_by_class_name('recommend').text
except NoSuchElementException:
  pass

正在尝试访问该值

comment.productRecommender

Tags: selfnone内容属性def语法comment装饰
1条回答
网友
1楼 · 发布于 2024-06-26 14:04:24

它应该是self.\u productRecommender,而不是self.productRecommender

class Comment():
    def __init__(self):
        self._productRecommender = None

    @property
    def productRecommender(self):
        print("getter called")
        return self._productRecommender if self._productRecommender is not None else 'Onbekend'

c = Comment()
foo = c.productRecommender

相关问题 更多 >