मैंने पूरी तरह से देखा है लेकिन बिना किसी शोर के खोजना कठिन विषय है।फ़ंक्शन कैसे जोड़ें
def f(arg):
return arg * arg
def add(self, other):
return self * other
f.__add__ = add
cubefunction = f + f
लेकिन मैं काम पर त्रुटियों की तरह cubefunction के लिए मिलता है:
TypeError: unsupported operand type(s) for +: 'function' and 'function'
वहाँ कोई समारोह बीजगणित अजगर में संभव है या मैं सिर्फ एक गूंगा गलती कर रहा हूँ मैं कुछ इस तरह करना चाहते हैं?
संपादित करें: बहुत बाद में, मैं कार्यात्मक प्रोग्रामिंग (http://docs.python.org/howto/functional.html) करने के लिए अजगर की आधिकारिक परिचय पढ़ रहा था, और नीचे की ओर यह एक तीसरी पार्टी पैकेज "कार्यात्मक" (http://oakwinter.com/code/functional/documentation/) है, जो कार्यों की रचना कर सकते हैं, यानी संदर्भ:
>>> from functional import compose
>>> def add(a, b):
... return a + b
...
>>> def double(a):
... return 2 * a
...
>>> compose(double, add)(5, 6)
22
हालांकि, आपका उदाहरण इंगित करता है कि आप चौथी शक्ति के लिए मूल्य बढ़ाना चाहते हैं, इसे क्यूब नहीं करें। –
मुझे कल्पना है कि + "गोफ" संरचना कार्य करने के लिए है? (यह फ़ंक्शन ऑब्जेक्ट पर * ओवरलोडिंग + के उत्तर के साथ मदद नहीं करता है *)। –
ओह, मेरा मतलब है '(एफ + जी) (एक्स) ==> एफ (जी (एक्स))' ... वैसे भी, मैं यह सुनिश्चित करना चाहता हूं कि यह स्पष्ट है। एक मध्यवर्ती प्रकार/रैपर का उपयोग करने की तकनीक दिखाने वाला पहले से ही एक उत्तर है। –