#!/usr/bin/python3 """ 这里通过实例简明地展示了python中__slots__的用法 """ import types class Student: """ __slots__中列出了该类的所有属性。给任何其他不存在于此数组里的属性赋值都会抛出异常,如下面的setNickname函数。 """ __slots__=['name','id','addr'] def __init__(self,i,n,a): self.name=n self.id=i self.addr=a def setNickname(self,nn): """ 这里试图设置一个__slots__中没有的属性,调用此函数时会抛出异常。 """ self.nickname=nn def printInfo(self): print('ID\tName\tAddress') print('%s\t%s\t%s' % (self.id,self.name,self.addr)) if __name__=='__main__': print('---START Test---') s=Student(1,'James','London') s.printInfo() s.setNickname('007')# Error Student类没有nickname属性 print(s.nickname)