[Baypiggies] padding variable assignments, why is it bad?

Wai Yip Tung tungwaiyip at yahoo.com
Sat Aug 11 02:05:07 CEST 2012


The more accurate way to say this is Python uses indentation level to 
determine block structure. Except at the beginning of a logical line, 
whitespace characters can be used to separate tokens, not defining block 
structure.  It isn't me applying different syntax rule. That's how the 
language is defined.

Wai Yip
> In addition to the other problems with this, you have another problem: 
> you've now got a separate coding standard for variables than you do 
> for other code blocks. White space in Python is syntactically 
> meaningful *initially* not in the middle or the end. You've just made 
> it meaningful (and dependent upon the length of the longest variable 
> name) *medially* and that's not Python.
>
> I actually find code that is column-aligned like that to be highly 
> distracting. I find regular, PEP-8 code to be much more highly 
> readable. And there was a time in the 90s when I was writing column 
> aligned variables (for a short while!). Readability at the level of 
> white space is simply a matter of getting used to (people that hate it 
> enough usually don't end up using Python, when given the choice).
>
> d
> Wai Yip Tung <mailto:tungwaiyip at yahoo.com>
> Friday, August 10, 2012 12:01 PM
> Imagine your have some code like this
>
> row.name = encode(src.get('name'), 'xmlref')
> row.description = encode(src.get('description'), 'xmlref')
> row.enabled = encode(src.get('enabled'), 'xmlref')
> row.last_access = encode(src.get('last_access'), 'xmlref')
>
> This looks a mumbo jumbo lines of code.
>
> However by aligning them into columns, the pattern become immediately 
> obvious.
>
> row.name        = encode(src.get('name'),        'xmlref')
> row.description = encode(src.get('description'), 'xmlref')
> row.enabled     = encode(src.get('enabled'),     'xmlref')
> row.last_access = encode(src.get('last_access'), 'xmlref')
>
> It is clear that the code is applying similar operation on 4 items. It 
> is a lot easier to tell which of the 4 elements and if you should 
> include more or less into the list. It is a huge visualization 
> improvement. PEP-8's suggestion on this is not a good one in my opinion.
>
> The down side is it takes some effort to keep it neat and tidy. Of 
> course I have editor macro that does that. I think every decent text 
> editor should have some function to help people to align things.
>
> Wai Yip
>
>
>
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
> Aleksandr Miroslav <mailto:alexmiroslav at gmail.com>
> Friday, August 10, 2012 10:19 AM
> (Reading this email requires a monospaced font.)
>
> I do this a lot in my code:
>
> foo = 1
> foo_bar = 2
> foo_bar_quux = 3
>
> but pep8, which I started using recently, considers this wrong, so I
> have to rewrite to the more common form:
>
> foo = 1
> foo_bar = 2
> foo_bar_quux = 3
>
> which I think sacrifices readability. Perhaps this is the n00b in me
> talking, but why is this considered bad?
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20120810/8af232f9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: compose-unknown-contact.jpg
Type: image/jpeg
Size: 770 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20120810/8af232f9/attachment.jpg>


More information about the Baypiggies mailing list