You mean ```#self.members = get_members(self.__class__)``` ? 

I made "members" as an attribute since the members only be accessed for Expr and its subclass. The class in core.pyx never need to access this member unless printint itself, so maybe turn it into an attribute is more efficient since it won't be initialized for every object creation, it's initialized only members are needed. 

I'm not sure, maybe this doesn't make a big difference.