谢谢大家了
首先,你一开始报错的时候,你写的是set_name.setter,你的装饰器在函数定义之前就出现了,所以会报错。
然后,你应该是没仔细看代码,你不止是把get_name改成了name,原来定义的set_name也改了。但是这时候因为前面定义过name方法了,所以使用@name装饰器没有问题。
python里面是必须定义之后才能调用。
要么你使用name,要么就是get_name, 不能在set_name之前使用set_name(没定义的情况下)
应该是get_name.setter
。你自己也写到,@属性名.setter
,你前面用@property装饰的是get_name属性