Вы пошли на дополнительную работу, чтобы обойти обычную работу метода класса.Вместо того чтобы использовать синтаксис вызова, который вы нашли в своих учебных материалах
test.instancemethod()
test.d(4)
..., вы назвали каждый метод как class метод и переопределили объект symbiont для вызова.Так как ваши методы на самом деле не используют экземпляр класса, который их вызывает, вам «не по себе» это использование.
Например, когда вы вызываете d
, вы жестко закодировали строку какself
объект, но тогда вы не используете его незаконным способом.Метод с радостью выводит значение 2 * 4.
Я предлагаю вам пройти еще одно или два урока по классам и методам, чтобы понять, как они должны работать. Тогда вы находитесь в хорошем положении, чтобы изменить намерения таким образом.: -)