【发布时间】:2021-05-19 17:35:21
【问题描述】:
我有一个这样的课程:
class Ticket:
def __init__(self, ticket):
self._subject = ticket.subject
self._oem = self.oem()
@property
def oem(self):
return self._oem
@oem.setter
def oem(self):
#set oem value by extracting it from subject using regex
self._oem = re.findall('<OEM: (.*?)>', self._subject)[0].strip()
但是,在创建对象时,
obj = Ticket(test_ticket)
我收到一个错误,
AttributeError: 'Ticket' object has no attribute '_oem'
我看过类似的问题,但他们问的问题和我不一样。
我想在 __init__ 方法中设置 oem 的值,方法是使用前一个变量的值,而不是从外部传递值。
我该如何解决这个问题?
【问题讨论】:
-
您希望
self._oem = self.oem()做什么?另请注意,您的 setter 缺少参数。
标签: python-3.x class properties setter