私は解決できない面白い状況に遭遇しました。 def a(self, x, y):
のように1つのクラス内に関数 の定義があり、a(par1, par2)
のように他の場所から呼び出されています。しかし、の代わりにpar1
が置換され、x
の代わりにpar2
、y
が未初期化のままになります。しかし、そうであってはならないでしょう:x
とy
の代わりにpar1
とpar2
を置き、Pythonにはself
があるはずです。これはPython 2.7で正しく動作しますが、この面白いことは3.2で発生します。メソッドaには修飾子がありませんが、呼び出すメソッドには@classmethod
修飾子があります。それはちょっと変だけど、おそらく@classmethodは3番目のバージョンで変更されています。誰が何が起こっているのか、どのように物事が正しく機能するかを知っているなら、教えてください。Pythonはパラメータの1つを自己に置き換えます
ありがとうございました!あなたの説明から
「 .a(par1、par2) 'のように' a'を呼びますか? –
ajwood
コードの外観の完全な例を表示できますか? – SingleNegationElimination
動作の完全で実行可能な例を提供できますか? – Kevin