擅长:python、mysql、java
<p><code>__slots__</code>属性只在“new-style”类中工作(这些类并不是真正的“new”,它们早在15年前就出现在python2.2中)。在Python2中,只有从<code>object</code>(或其他一些新样式类)继承时,才能获得一个新样式的类。继承是通过将一个或多个基类放在<code>class</code>语句中派生类名称后的括号中来声明的。因此,<code>CSStudent</code>的第二个实现不是一个新样式的类,因为它不继承任何东西。因此<code>__slots__</code>将不起作用(它只是一个奇怪的命名属性)。在</p>
<p>新样式和旧样式类之间的区别只存在于Python2上。Python3已经删除了旧样式的类,因此您的两个类实现在Python3解释器中的工作原理相同(不再需要显式地从<code>object</code>继承)。在</p>