这就是我想做的事。
class robot(object):
def __init__(self, addr=0x60, port, revolution, speed):
self._mh = Adafruit_MotorHAT(addr)
self._stepper = self._mh.getStepper(port, revolution)
self._speed = self._mh.setSpeed(speed)
我不工作,并给我一个语法错误,默认参数后面的非默认参数。这是因为我在一个实例中使用了2个参数。我可以进行def设置,它会起作用。
self._mh = Adafruit_MotorHAT(addr)
self.port = port
self.revolution = revolution
self._speed = self._mh.setSpeed(speed)
def setup(self):
self._mh.getStepper(self.port, self.revolution)
但是我想在启动部分使用它,所以我不必调用motor.setup()。
因此,除了在课程中添加方法之外,还有更好的方法吗?所以它将在方法 init 。
答案 0 :(得分:2)
所以非默认参数意味着你给它一个值。
例如:addr=0x60
您必须在普通参数之后放置这些非默认参数。
像这样:
def __init__(self, port, revolution, speed, addr=0x60):
self._mh = Adafruit_MotorHAT(addr)
self._stepper = self._mh.getStepper(port, revolution)
self._speed = self._mh.setSpeed(speed)
答案 1 :(得分:1)
必需的参数位于函数签名中的可选参数之前。