Я делаю классный двигатель. Он будет управлять настройкой двигателя, поэтому его будет легче контролировать.класс stepper 2 аргумента 1 экземпляр
Это то, что я хотел бы сделать.
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.
Сообщение об ошибке кажется совершенно ясным: у вас есть аргументы, отличные от значения по умолчанию, после аргумента по умолчанию. Почему вы не делаете очевидную вещь, которая заключается в том, чтобы обменивать их? –
@ Daniel Можете ли вы указать для меня, что такое аргумент по умолчанию. (Возможно, Addr) –