Grouping code by indentation - feature or ******?

Patrik Andreasen pan at botong.org
Sun Mar 27 13:53:49 EST 2005


Giovanni Bajo wrote:
> Terry Reedy wrote:

>>>3) Sometimes the structure of the algorithm is not the structure
>>>  of the code as written, people who prefer that the indentation
>>>  reflects the structure of the algorithm instead of the structure
>>>  of the code, are forced to indent wrongly.
>>
>>Do you have any simple examples in mind?
>
> Yes. When I use PyQt (or similar toolkit), I would like to indent my widget
> creation code so that one indentiation level means one level down into the
> widget tree hierarchy:
> 
> v = VBox(self)
>     # sons of v indented here
>     w = HBox(self)
>         # sons of w here
>         QLabel("hello", w)
>         QLabel("world", w)
>     QButton("ok", v)
> 
> In fact, I am used to do this very thing in C++, and it helps readability a
> lot.

But in Python it's really easy to use a declarative construct instead, 
maybe something as simple as a nested list of classes and constructor 
arguments, and use some simple machinery to build the object graph. This 
way you avoid having the code and indentation saying different things, 
like in your example above, where it seems that w is not in fact a child 
of v. I don't know anything about PyQt though, so if I'm wrong about 
that I apologise - but the point still stands, since it's confusing to 
read it.

/patrik




More information about the Python-list mailing list