python—封装装饰器问题

img


img


大家可以帮我修改一下吗?上边是代码和报错内容
为什么我把所有的get_name修改为name就可以运行了呢

img

谢谢大家了

首先,你一开始报错的时候,你写的是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属性