Я провел довольно много исследований как внутри, так и за пределами stackoverflow. Да, есть похожие темы. Но я не мог найти ответ на мою конкретную проблему. Может быть, потому что я пока не вижу более широкой картины с моим нынешним пониманием Python.
В последней строке я получаю сообщение об ошибке Нет значения для аргумента «я» в вызове метода. Как мне правильно вызвать метод здесь? Или вообще нельзя вызывать методы внутри одного класса?
class Main:
metronomeState = True
currentMillis = 0
lastMillis = 0
intervalMillis = 0
bpm = 120
measureCount = 0
def bpmToMilliInterval(self):
self.bps = Main.bpm/60
return int((1/self.bps)*1000)
Main.intervalMillis = Main.bpmToMilliInterval()
Может показаться, что для этого класса нет смысла, потому что мне не нужно его инстанцировать. Но я хочу использовать код Main() в другом классе Gui(), который отвечает за все, что связано с графическим интерфейсом. Таким образом, разные классы — это способ организации кода. Хороший подход или нет?
Заранее спасибо за помощь!
bps
, и он не установлен в__init__
; все остальные атрибуты являются атрибутами класса. Предполагается ли, что можно создавать экземплярыMain
? Если нет, то это очень странный класс, но вы, вероятно, захотите просто сделатьbpmToMilliInterval
@classmethod
(при условии, чтоbps
необходимо сохранить за пределами вызова) и (исключительно для правильного стиля) изменить все ссылки сself
наcls
. Эта последняя строка должна быть вне определения класса (я подозреваю, что она находится в вашем реальном коде, поскольку в любом случае было бы незаконно иметь ее внутри класса). - person ShadowRanger   schedule 21.10.2020