क्यों है:लैम्बडा अभिव्यक्ति में क्यों प्रिंट नहीं किया जा सकता है?
p = lambda s: print(s)
अमान्य वाक्यविन्यास लेकिन:
def do_print(s):
print(s)
p = lambda s: do_print(s)
वैध?
क्यों है:लैम्बडा अभिव्यक्ति में क्यों प्रिंट नहीं किया जा सकता है?
p = lambda s: print(s)
अमान्य वाक्यविन्यास लेकिन:
def do_print(s):
print(s)
p = lambda s: do_print(s)
वैध?
एक लैम्ब्डा के शरीर एक अभिव्यक्ति है, न कि एक बयान हो गया है। print
एक बयान है।
अपडेट: जैसा कि इंगित किया गया है, 2.x, print
एक कथन है जबकि पायथन 3 में, यह एक कार्य है।
अपनी तरह से भाषा यह सब एक कदम
जो अजगर के संस्करण आप उपयोग कर रहे हैं ?; में p = lambda s: print(s)
ऐसा नहीं कर सकते पढ़ा जाता है अजगर 2.7 (और इससे पहले कि) में, प्रिंट अजगर 3 में एक बयान, जबकि यह एक समारोह
2.7 में आप इस –
को एकीकृत करने के लिए __future__ आयात print_function' से कर सकते हैं। मैं अजगर 2.6.6 में पायथन 2.6.6 – david4dev
का उपयोग कर रहा हूं, 'प्रिंट' एक कथन है और जैसा कि लैम्ब्डा अभिव्यक्तियों में नहीं हो सकता है, आपके उदाहरण में एक रैपिंग फ़ंक्शन का उपयोग अनुशंसित वर्कअराउंड –
@sukhibr [docs] के अनुसार है (http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is- ए-फ़ंक्शन) 'प्रिंट()' एक फ़ंक्शन है। – khachik
खचिक, हाँ, मैंने अपडेट किया है। – user225312