私はクラスのためにPythonでカリングを学習しようとしています。そのために()演算子をオーバーロードする必要があります。しかし、私はどのように私は()演算子のオーバーロードに行くことができるか分かりません。あなたは括弧のオーバーロードの背後にある論理を説明できますか?最初に過負荷にする必要がありますか?また、かっこ演算子の特別な名前はありますか?PythonのOverload()演算子
答えて
あなたは__call__
メソッド実装することで、オブジェクトが呼び出し可能にすることができます。[呼び出し可能オブジェクトをエミュレート]
class FunctionLike(object):
def __call__(self, a):
print "I got called with %r!" % (a,)
fn = FunctionLike()
fn(10)
# --> I got called with 10!
追加などの呼び出し可能オブジェクトで基本操作を行うことはできますか? – jdyg
ほとんどすべての言語操作を提供できます:http://docs.python.org/2/reference/datamodel.html#special-method-names –
'()'は本質的に問題のオブジェクトを呼び出す呼び出し演算子ですある種の議論(またはその不在)? – MadPhysicist
- 1. Pythonコロン演算子
- 2. ++ i演算子(Python)
- 3. Overload []メモリ参照を使用するPython演算子と連鎖メソッド
- 4. python演算子、 "not in"の演算子なし
- 5. 演算子if演算子
- 6. PythonでAND演算子とNOT演算子を使用する
- 7. python +演算子オーバーロード問題
- 8. C++:演算子オーバーロード、演算子+
- 9. C++演算子+演算子+ =オーバーロード
- 10. Xval演算子と比較演算子?
- 11. リスト全体のブール演算子(Python)
- 12. Pythonの "in"集合演算子
- 13. Python "in"演算子の速度
- 14. C#の演算子の演算順序
- 15. Pythonに相当する!演算子
- 16. Dequesを持つコロン演算子(Pythonで)
- 17. タイプキャスト演算子
- 18. Groovy ==演算子
- 19. ストリンジェライザ演算子#
- 20. ! &&演算子Java
- 21. ドット演算子
- 22. groovy ^演算子
- 23. ハスケル:=演算子?
- 24. Java + =演算子?
- 25. 演算子オーバーロード==
- 26. Bigint +演算子
- 27. "?"演算子
- 28. Groovy *。演算子
- 29. F#演算子 "?"
- 30. モジュロ演算子
を(http://docs.python.org/2/reference/datamodel.html#emulating-callable-オブジェクト) – soon