Python 为什么我会出现这些错误?属性错误:can';t集属性
我试图测试我的属性,但它不工作,我不知道为什么Python 为什么我会出现这些错误?属性错误:can';t集属性,python,python-decorators,Python,Python Decorators,我试图测试我的属性,但它不工作,我不知道为什么 import smtplib class EmailService(object): def __init__(self): self._sender=None self._receiver=None self._message=None @property def sender(self): return self._sender @sende
import smtplib
class EmailService(object):
def __init__(self):
self._sender=None
self._receiver=None
self._message=None
@property
def sender(self):
return self._sender
@sender.getter
def sender(self, sender):
self._sender = sender
@property
def receiver(self, receive):
return self._sender
@receiver.getter
def receiver(self, receiver):
self._receiver = receiver
@property
def message(self, message):
return self._message
@message.getter
def message(self, message):
self._message = message
def main():
smtp=EmailService()
smtp.sender="kevin"
smtp.receiver="alvin"
print(smtp.message +" "+ smtp.sender+" " + smtp.receiver )
if __name__=="__main__":
main()
用
@property
包装的方法已经是您的getter
s了
因此,将
@receiver.getter
替换为@receiver.setter
,以使相应的方法setter
s使用@property
包装的方法已经是您的getter
了
因此,将@receiver.getter
替换为@receiver.setter
,以生成相应的方法setter
s
AttributeError:无法设置属性
发生这种情况是因为您试图设置发送方
和接收方
属性,但没有设置器
您需要替换:
与@sender.getter
@sender.setter
与@receiver.getter
@receiver.setter
与@message.getter
@message.setter
@属性
装饰器使该方法成为getter。setter的格式必须为-@。setter
因此,用@.setter
s修复不正确的@.getter
s
AttributeError:无法设置属性
发生这种情况是因为您试图设置发送方
和接收方
属性,但没有设置器
您需要替换:
与@sender.getter
@sender.setter
与@receiver.getter
@receiver.setter
与@message.getter
@message.setter
@属性
装饰器使该方法成为getter。setter的格式必须为-@。setter
因此,用
@.setter
s修复不正确的@.getter
s 您编写了@sender.getter
而不是@sender.setter
。您编写了@sender.getter
而不是@sender.setter
。