2013-11-20 62 views
0

我需要爲在水平線上移動的汽車創建一個類。構造函數只能有一個參數,這是它拋棄我的地方。我只能有一個參數來初始化錯誤的初始位置。它應該默認值爲0,並且初始方向應該始終爲1。但我不知道我可以在構造函數中沒有2個參數的情況下做到這一點。我還需要兩種用於移動和轉動車輛的增變器方法以及一種將顯示車輛位置的存取器方法。Move Car Horizo​​ntal - Python classes

例子:position 5 direction right: .....>; position 2 direction left: ..<

class Bug: 

    def __init__(self, iPosition=0): 
     self.position = iPosition 

    def move(self): 
     pos = self.postion 

    def turn(self): 
     direction = self.position 

    def display(self): 
     if direction < 0: 
      x = '<' 
     elif direction > 0: 
      x = '>' 
     for i in range(pos): 
      y = '.' + y 
     return (y,x) 

回答

1

你在顯示屏()函數的代碼應該給你答案。它有向左移動負向的運動。因此,構造函數參數中的負值可能表示向左移動。

+0

是的,但是當我使用'錯誤(10)測試功能'它告訴我,「<_main_.Bug例如在0X00000079E67C8>' – user3014014

+0

..是的?它提出了你要求的實例,問題是什麼? – kindall

+0

當我使用tester = Bug(10) – user3014014

0

這可能是更喜歡你所需要的:

class Bug: 

    def __init__(self, iPosition=0): 
     self.position = iPosition 
     self.direction = 1 

    def move(self, distance=1): 
     self.position += self.direction * distance 

    def turn(self): 
     self.direction = -self.direction 

    def display(self): 
     if self.direction < 0: 
      x = '<' 
     elif self.direction > 0: 
      x = '>' 
     y = '' 
     for i in range(self.position): # this is not right if position is negative; maybe abs()? 
      y = '.' + y 
     return (y,x) 
+0

測試函數時,它實際上並沒有顯示。的和。>。只有一個問題:y在display()函數中定義在哪裏? – RobH

+0

@RobH好點...這幾乎是一個複製意大利麪調整,我錯過了'y'沒有定義。添加了一個明確的初始化... – twalberg

+0

如何使用另一個函數在位置10創建一個bug對象?它只是「錯誤(10)」? – user3014014

相關問題