Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
水平移动汽车-Python类_Python_Class - Fatal编程技术网

水平移动汽车-Python类

水平移动汽车-Python类,python,class,Python,Class,我需要为在水平线上移动的汽车创建一个类。构造函数必须只有一个参数,这就是它让我感到厌烦的地方。我只能有一个参数来初始化bug的初始位置。默认值应为0,初始方向应始终为1。但我不确定在构造函数中没有两个参数的情况下是否可以实现这一点。我还需要两种移动和转动汽车的变异方法,以及一种显示汽车位置的访问方法 示例:位置5方向右侧:;位置2向左方向:。。0: x='>' 对于范围内的i(位置): y='.'+y 返回(y,x) display()函数中的代码应该会给出答案。它的运动方向向左,表示负方向。因

我需要为在水平线上移动的汽车创建一个类。构造函数必须只有一个参数,这就是它让我感到厌烦的地方。我只能有一个参数来初始化bug的初始位置。默认值应为0,初始方向应始终为1。但我不确定在构造函数中没有两个参数的情况下是否可以实现这一点。我还需要两种移动和转动汽车的变异方法,以及一种显示汽车位置的访问方法

示例:
位置5方向右侧:;位置2向左方向:。。0:
x='>'
对于范围内的i(位置):
y='.'+y
返回(y,x)

display()函数中的代码应该会给出答案。它的运动方向向左,表示负方向。因此,构造函数参数中的负值可能表示向左移动。

这可能更像您需要的:

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)
类错误:
def uuu init uuu(self,i位置=0):
self.position=i位置
自我定向=1
def移动(自身,距离=1):
自我位置+=自我方向*距离
def转向(自):
self.direction=-self.direction
def显示(自):
如果自我方向<0:
x=''
y=''
对于范围内的i(self.position):#如果position为负数,则不正确;也许是abs()?
y='.'+y
返回(y,x)

是的,但是当我使用
Bug(10)
测试函数时,它告诉我,`。。。对它已经生成了您请求的实例,有什么问题吗?当我使用tester=Bug(10)测试函数时,它并没有实际显示“.”和“>”。只有一个问题:在display()函数中y的定义在哪里?@RobH很好。。。这几乎是一个复制的意大利面调整,我错过了没有定义的
y
。添加了显式初始化…如何使用另一个函数在位置10创建bug对象?它只是
Bug(10)
?@user3014014是的,类似
some_variable=Bug(10)
的东西会创建一个Bug对象,并使用10作为第一个(非自)参数调用它的构造函数。然后
some\u variable.turn()
会将其翻转,而
some\u variable.move()
some\u variable.move(5)
(或任何其他值)会将其移动。我现在面临的唯一问题是它不会显示's和>'s。我有没有做错什么?
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)