私はPythonに問題があります: メソッドを別のクラスからオブジェクトに割り当てたいが、このメソッドでは独自の属性を使用する。私は私のプロジェクト(その例ではない)で異なる使用方法を持つ多くのコンテナを持っているので、継承を使用したくないので、各インスタンスのカスタムクラスを作成しなければなりません。メソッドの代入とオブジェクト
class container():
def __init__(self):
self.info = "undefiend info attribute"
def use(self):
print self.info
class tree():
def __init__(self):
# create container instance
b = container()
# change b's info attribute
b.info = "b's info attribute"
# bound method test is set as use of b and in this case unbound, i think
b.use = self.test
# should read b's info attribute and print it
# should output: test: b's info attribute but test is bound in some way to the tree object
print b.use()
# bound method test
def test(self):
return "test: "+self.info
if __name__ == "__main__":
b = tree()
ありがとう、これを読んで、おそらく私を助けてくれてありがとう! :)
ありがとうございました。ありがとうございました。ありがとうございました。タイプとメソッドタイプについてもう少し詳しくお知りになりたいと思います。しかし、あなたのソリューションはとてもうまく動作します! – blackforestcowboy
@blackforestcowboy:この知識は黒い魔法ですので、あなたはそれについて知っているとは思いません。私がチェックした最後の時間はどこにも書かれていません。私はプラグインシステムを作ろうとしているときに自分自身を発見しました。自己記述されたPythonの専門家はすべて答えを出すのではなく、私に質問することができないと私に言っていました。 – Unknown
@知られていない:はい、黒い魔法が好きです! ;)私は、types.MethodType packackeのために調べてみましたが、それについての情報を簡単に見つけることができました。私はまたPluginSystemのようなものを書こうとしているので、継承は書くよりもずっと多くのコードでしょう。もう一度ありがとうございます。 – blackforestcowboy