Discuss / Python / 疑问

疑问

Topic source

郝宇臻

#1 Created at ... [Delete] [Delete and Lock User]

除非在子类中也定义slots,这样,子类实例允许定义的属性就是自身的slots加上父类的slots。这句话不对吧?子类实例允许的属性就是自身的slots中的属性。前面说了父类的slots对子类不起作用。

Superb来了

#2 Created at ... [Delete] [Delete and Lock User]

他说的意思是子类允许定义的属性是自身的slots和父类slots的并集而不是交集,说父类对子类不起作用也是说父类不会限制子类比它多定义其他的属性

晨小伍

#3 Created at ... [Delete] [Delete and Lock User]

1、当子类定义中没有slots时,父类的slots对子类不起作用。子类实例想加什么属性就加什么属性 2、当子类定义中有slots时,父类的slots会对子类起作用。子类会继承父类的slot,那么子类实例能加的属性就是父类slots和子类本身slots规定的属性了。

实测,如果子类中有slots 那么 父类中定义的属性,在子类中也是可以使用的,也就是继承作用; 如果子类中没有slots 那么 父类中定义的属性,子类中是不可以使用的,就是不起作用

如果子类中没有slots,子类中可添加任何属性,包括父类中slots中的。


  • 1

Reply