Я столкнулся с забавной ситуацией на Python, которую я не могу решить. У меня есть функция определение внутри одного класса, как def a(self, x, y):
, и он был вызван из другого места, как a(par1, par2)
. Однако происходит то, что par1
заменяется вместо self
, par2
вместо x
и y
остается неинициализированным. Но этого не должно быть: par1
и par2
должны были быть размещены вместо x
и y
соответственно, и Python должен был получить self
сам. Это правильно работает в Python 2.7, однако эта забавная вещь происходит в 3.2. Метод a не имеет модификаторов, однако метод, в котором я его вызываю, имеет модификатор @classmethod
. Это немного странно, возможно, @classmethod был изменен в третьей версии. Если кто-то знает, что происходит или как правильно работать, скажите, пожалуйста.Python заменяет один из параметров на себя
Спасибо!
Если вы вызываете 'a' как' .a (par1, par2) '? –
ajwood
вы можете показать полный пример того, как выглядит ваш код? – SingleNegationElimination
Можете ли вы представить полный, управляемый пример поведения? – Kevin