2011-05-04 6 views
0

그 클래스에서 작성할 수있는 클래스를 작성해야합니다.수업을 목록에 넣으십시오. 파이썬

class Drawing(Circle, Square): 
    list = [] 

    def addShape(self, theShape, colour, x, y, side): 
     self.list += [self.theShape(colour, x, y, side)] 

    def display(self): 
     return self.list 

    def move(self): 

    def changeColour(self, newColour): 

    def totalArea(self): 
     return 

class Shape(Point): 

    def __init__(self, colour, x, y): 
      Point.__init__(self, x, y) 
      self.colour = colour 
      self.centrePoint = (x,y) 

    def centre(self): 
     return self.centrePoint 

    def movePoint(self, newX, newY): 
      Point.move(self, newX, newY) 
      self.centrePoint = (self.x, self.y) 


class Circle(Shape): 

    def __init__(self, colour, x, y, radius): 
     Shape.__init__(self, colour, x, y) 
     self.radius = radius 

    def getArea(self): 
     return math.pi * (self.radius * self.radius) 

에는 사각형 클래스가 더해집니다.

어떻게 색 등을 추가하고 클래스 이름을 목록에 추가하여 사용할 수 있습니까? 또는이 일을하는 가장 좋은 방법.

thanks

+1

'addShapes'는 무엇을 의미합니까? 'Shape' 인스턴스의 목록 만 원합니까? 인스턴스의 모양이 어떤 것인지 알거나 인스턴스에 draw()를 호출하여 인스턴스에 인스턴스의 수행 방법을 알려 주어야합니까? – unholysampler

+2

질문의 명확성을 위해 노력하십시오. 좋은 답변을 얻는 데 도움이 될 것입니다. – NPE

+0

필자가해야 할 클래스를 추가했습니다. – Tom

답변

0

:

l = [Circle(BLACK, 0.0, 0.0, 12.0), Circle(GREEN, 10.0, 0.0, 3.0), Square(YELLOW, 5.0, 5.0, 1.0)] 
1

나는 당신이 무슨 말을 하려는지 완전히 분명 생각하지 않는다 달성하지만, 여기에 내가 생각하는 내용은 다음과 같습니다

    당신은 당신이 지금까지 당신은 쇼
  1. 쓴 것을 우리에게 보여 주어야한다
  2. 이 숙제
  3. 경우 자민련 숙제로 표시
  4. 당신은 파이썬에서 목록에 아무것도를 추가, 그래서 그냥 그것을 샷을 제공 할 수 있습니다 :

    으로 myList = [circle_instance, CircleClass, '어떤 색', 1337]

목록에 원하는 모양, 클래스, 텍스트, 정수 등의 인스턴스를 가질 수 있습니다.

0

서클과 스퀘어를 하위 클래스로 분류하고 싶지 않습니다.

class Drawing(object): 
    list = [] 

    def addShape(self, theShape, colour, x, y, side): 
     self.list += [theShape(colour, x, y, side)] 

    def display(self): 
     return self.list 

    def move(self): 

    def changeColour(self, newColour): 

    def totalArea(self): 
     return 

을 한 다음은 다음과 같이 수행 할 수 있습니다 :이 시도

d = Drawing() 
d.addShape(Circle, c1, 0, 0, 5) 

당신이 (문자열로) 이름에 따라 색상을 조회하고자하는 경우, 즉 행할 것을 그러나 몇 가지 다른 전략이있을 것입니다.