When to use classes?

Scott Bahling sbahling at pitnet.net
Sat Mar 4 22:08:55 EST 2000


I am just starting to use python and I love it so far.

I have a couple of philosophical questions about OOP programming with
python. 

First: When and when not to create a new class? An example would be if I
have a class for a Polygon, I need to store a set of points defining the
polygon object. One method would be to store a list of tuples containing
the polygon's points. If I want to access the individual x and y coords
of each point, I end up with code that looks like:
		
		firstxcoord = poly.points[0][0]
		firstycoord = poly.points[0][1]

Or I could create a Point class and use a list of them in the Polygon
class. Then I would have code that looks like:
	
		firstxcoord = poly.points[0].x
		firstycoord = poly.points[0].y

The second piece of code is easier to read. But lets say that this Point
class has no other purpose but to contain two numerical values; is the
use of a Point class overkill? Is there a 'rule of thumb' for when to
create a new class?

Second: What is the general consensus about accessing instance variables
directly like myobj.x=10 vs. through methods like myobj.setx(10). The
first method is quicker/easier to code, but is it "bad" coding?  Does
anyone even care?

I know these are general OOP questions. I am asking in case there are
aspects of the python language that would help to determine when and
when not to do these things.

-thanks
 
scott



More information about the Python-list mailing list