このクラスがあるとします:
class MyClass(object):
def uiFunc(self, MainWindow):
self.attr1 = "foo"
self.attr2 = "bar"
def test():
from subclassfile import MySubClass
MySubClass.firstFunc(self, 2, 2)
test()
そして、他のファイルのこのサブクラス:
from classfile import MyClass
class MySubclass(MyClass):
def firstFunc(self, a, b):
c = a + b
d = self.secondFunc(self, c)
return d
def secondFunc(self, c):
d = c / 2
return d
これはばかげた例ですが、まさに私がやろうとしていることを表しています。最初の関数内のサブクラスから 2 番目の関数を呼び出したい。しかし、それを行うと、 MyClass にはそのような機能がないというエラーが返されます。self
したがって、呼び出すときに関数名の前に使用するべきではないと思います。しかし、そうしないと、エラーも発生します。
だから私の質問は: サブクラスの最初の関数内でこの 2 番目の関数にアクセスするにはどうすればよいですか?
編集:
助けてくれてありがとう。私の実装はコードで本当に悪いと思いますが、私がやろうとしていることをよりよく説明します。MyClass は、すべてのウィジェットとメイン関数があるコードのメイン クラスです。このクラスには、「テスト」機能にバインドされたボタンもあります。したがって、ボタンを押すと、すべてが機能するはずです。MySubClass ファイルは、データを何らかのファイルにエクスポートする補助モジュールです。firstFunc はこのモジュールのメイン関数で、すべてのデータを処理しますが、secondFunc はファイルのテンプレートを構築するだけです。したがって、テンプレートが読み込まれ、データがファイルに書き込まれるように、firstFunc 内でこの secondFunc を呼び出します。この MySubClass を MyClass から継承して、データベースやその他の変数に MyClass から直接アクセスできるようにしました。
だから私はこれを別の方法で行うことができると思います。しかし、私はこの種の実装についてはあまり経験がありません。また、私の悪い英語で申し訳ありません。