str TypeError,是的,这是基本的,但听我说

2024-10-01 15:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道,这可能是一个非常简单的问题,但无论我经历多少次,这都没有任何意义。我做了一个非常简单的类,是为了控制一个基于Arduino的汽车。我将其设置为serialOut函数将返回一个字符串,其中包含通过serial发送所需的格式。但是,每当我使用它时,总是会出现以下错误:

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    car.serialOut()
TypeError: 'str' object is not callable

这是类的代码:

# Drive Communication System
import serial

def output(speed,steer,orientation):
        return ('%02d' % speed) + ('%02d' % steer) + (orientation)

class DriveTrain:

    def __init__(self,serial,cruise_speed = 60, turn_sensitivity = 1):
        self.serialOut = '0045s'
        self._cruise = cruise_speed
        self._trim = turn_sensitivity
        self._speed = 0
        self._steer = 0
        self._orientation = 's'

    def Drive(self,speed, steer = 0, orientation = 's'):
        self._steer = steer + 45
        self._speed = speed
        self._orientation = orientation

    def stop(self):
        self._steer = 45
        self._speed = 0
        self._orientation = 's'

    def status(self):
        return (self._speed,self._steer - 45,self._orientation)

    def serialOut(self):
        return output(self._speed,self._steer,self._orientation)

if __name__ == '__main__':
    ser = serial.Serial('COM3',38400)
    car = DriveTrain(ser)
    car.Drive(60)
    #car.Drive(60)

最初,我在实际的serialOut类函数的output函数中有当前的操作,但是发生了相同的事情。我还附上了一张照片,显示了我如何通过检查每个操作,但由于某些原因,它仍然无法工作。很明显,我错过了一些简单的东西,但就我的一生而言,我就是搞不懂它是什么

Testing the code


Tags: 函数selfoutputreturndefserialdrivecar

热门问题