# Style suggestions/critiques

```On 21/08/19 9:11 AM, Michael F. Stemper wrote:
> I recently wrote a couple of modules (more to come) to help me
> use the tikz package in TeX/LaTeX. Since it's all to do with
> drawing, I have a lot of points in R^2. Being unimaginative, I
> implemented them as ordered pairs (2-tuples) of floats. E.g.:
> p1 = 3,4
> p2 = 5,6
>
> Naturally, lines are implemented as ordered pairs of points:
> line = p1,p2
>
> This all seems reasonably simple and intuitive (to me). However,
> in order to actually do some manipulation, I have stuff like:
> # Unpack the lines
> l1p1,l1p2 = line1
> l1x1,l1y1 = l1p1
> l1x2,l1y2 = l1p2
> l2p1,l2p2 = line2
> l2x1,l2y1 = l2p1
> l2x2,l2y2 = l2p2
> spattered all over. Although this is simple enough, I find it
> aesthetically unappealing.

Agreed, but could more descriptive names be used?

> Is there some better idiom that I should be using, or is this
> really in accord with The Zen of Python?
>  (I could have done sets, I suppose, but orientation might be
> useful at some point.)

Assuming that the code does-stuff with/to lines, eg rotate the line 0.2

class Line():
def __init__( self, starting_point, ending_point ):
self.starting_point = starting_point
self.ending_point = ending_point
def rotate( self, angle, center ):
...

The same could also be said for a Point class. However, if they are
'only' Cartesian coordinates and no methods ever apply(???), then maybe
named-tuples or a dict?
(thus able to refer to p1.x and p1.y (or p1[ "x" ], etc) )

Using examples from above:

p1 = Point( 3, 4 )	# p1 = 3,4
p2 = Point( 5, 6 )	# p2 = 5,6

line = Line( p1, p2 )	# line = p1,p2

> l1p1,l1p2 = line1

Do things now appear to be closer to self-documenting?

Also, we can now use: