avoid unnecessary function call in _attr

this.pos() is calculated even when it's not used. Actually, it's never
used (because mbr() already has code to call this.pos() if necessary.)
So this is a wasteful function call and object creation.

Also, fix typos.
Merge pull request #479 from sbyrnes321/optimize_attr

avoid unnecessary function call in _attr