मैं एक बहुत चालाक थोड़ा समारोह है कि दो कार्यों लेता भर में आया था, एक तर्क x
दी एक दूसरे को एक के ऊपर एक लागू होता है:इस लैम्ब्डा को * तर्क की आवश्यकता क्यों है, इससे क्या फर्क पड़ता है?
def compose(f,g):
return lambda *x: f(g(*x))
अब मेरी मुद्दा, *x
साथ है के रूप में मैं यह नहीं देख पाते वास्तव में कर रही है यहाँ कुछ भी यह x
(तारांकन के बिना) क्यों आसान नहीं हो सकता है?
>>> def compose(f,g):
... return lambda *x: f(g(*x))
...
>>> this = lambda i: i+1
>>> that = lambda b: b+1
>>> compose(this,that)(2)
4
>>> def compose(f,g):
... return lambda x: f(g(x))
...
>>> compose(this,that)(2)
4
>>> def compose(f,g):
... return lambda *x: f(g(*x))
...
>>> compose(this,that)(2,2)
TypeError: <lambda>() takes exactly 1 argument (2 given)
@jonrsharpe जबकि यह '*'/'**' बताता है - मुझे नहीं लगता कि यह इस प्रश्न के संदर्भ को बताता है –