我最近遇到了一个python片段,它将创建一个不同的对象模型。该代码的一部分由__slots__
和__fields__
组成。
class Reptor(object):
__slots__ = __fields__ = 'type', 'code', 'deviated_angle'
__slots__
将创建元组对象而不是字典对象,这会最小化对象大小并为其增加不变性。但是我不明白这里的__fields__
部分是什么?
并且__fields__
中已经使用了__repr__
def __repr__(self):
fields = ', '.join(repr(getattr(self, f)) for f in self.__fields__)
return f'(type(self).__name__)({fields})'
答案 0 :(得分:1)
__slots__ = __fields__ = 'type', 'code', 'deviated_angle'
__fields__
也在此处设置。这基本上是以下简称:
__fields__ = 'type', 'code', 'deviated_angle'
__slots__ = __fields__
__fields__
在Python中没有特殊含义,因此它可能被应用程序的其他部分使用。