Sometimes it is obvious what the attributes of an object should be, but other times you have to make decisions. For examples, imagine you are designing a class to represent rectangles. What attributes would you use to specify the location and size of a rectangle? You can ignore angle; to keep things simple, assume that the rectangle is either vertical or horizontal.
There are at least two possibilities:
At this point it is hard to say whether either is better than the other, so we’ll implement the first one, just as an example.
import math
class Point:
"""represents a point in 2-D space"""
class Rectangle:
"""represent a rectangle.
attributes: width, height, corner.
corner is a Point object that specifies the lower-left corner.
"""
box = Rectangle()
box.width = 100.0
box.height = 200.0
box.corner = Point()
box.corner.x = 0.0
box.corner.y = 0.0
The figure shows the state of this object:
from Thinking in Python
原文:http://www.cnblogs.com/ryansunyu/p/3992949.html