def __str__(self):
argspec = inspect.getargspec(self.__init__)
args = argspec.args
defaults = argspec.defaults or []
joined = reversed(list(izip_longest(reversed(args), reversed(defaults),
fillvalue=_SENTINEL)))
next(joined) # Skip self
values = []
skipped = False
for attribute, default in joined:
value = getattr(self, attribute)
if value == default:
skipped = True
continue
if skipped:
values.append('{}={}'.format(attribute, repr(value)))
else:
values.append(repr(value))
return ', '.join(values)
评论列表
文章目录