1
ファクトリメソッドを引数として持つ関数があります。ファクトリメソッドを呼び出すと、オブジェクトが作成されます。今では、希望のオブジェクト/クラスFruit.__init__
のコンストラクタを直接ファクトリメソッドとして指定できると考えました。しかし、それは機能しません。self
引数は "存在しません"。だから私は、オブジェクトを構築する追加の方法fruit_factory
を導入する必要があります。ファクトリメソッドとして__init__コンストラクタを使用
def fruit_factory(owner):
return Fruit(owner)
class Fruit:
def __init__(self, owner):
print('Making a fruit for ' + owner)
def make_snack_for_jim(snack_factory):
snack_factory('Jim')
make_snack_for_jim(fruit_factory) # Works, but needs additional function
make_snack_for_jim(Fruit.__init__) # Does not work (no 'self' argument)
は直接追加メソッドを作成する必要の代わりにコンストラクタを指定する方法はありますか?
を呼んで、私は本当に理解していません。果物をファクトリ関数にロードできないのはなぜですか? –
Markus Meskanenの答えで提案されていますか?私はそれを行うことができるようだが、私はそれを考えなかった... ;-) – Michael