求大神帮我看看
Topic source你这个set_age()
是定义在class外部的,不是class的方法,但s1又继承于class,所以会报错。
我认为应该是这样:
class Student(object):
__slots__=('name','age')
def set_age(self,age):
self.age=age
...
由于'score'没有被放到slots中,所以不能绑定score属性,试图绑定score将得到AttributeError的错误。
使用slots要注意,slots定义的属性仅对当前类实例起作用
修改代码: 第一种:
__slots__=('name','age')改为__slots__=('name','age', 'set_age')
第二种:
编写一个类,继承Student,s1实例化Student的子类。
你这应该有两种改进方法:
一、尝试一下用类属性绑定方法,不要用实例属性 例:类.set_score=MethodType(set_score,类),用这种情况,可以不用理会slots对变量的限制,因为在set_score方法中可以添加属性变量。
二、尝试实例属性绑定方法,如你的这种,必须在slots中添加set_score这个方法进去,后续才可以该方法对age进行赋值调用。
- 1
拉擦擦啊粒打打
这是我的代码slot.py:
这是运行情况,到底哪里错了!?