Saya pikir saya bisa berkontribusi, gunakan line breaker:
x = lambda x,y: x-y if x<y \
else y-x if y<x \
else 0
Jangan lupa hal yang sangat bagus yang bisa ditulis oleh python pada orang-orang yang tidak bertanggung jawab, seperti dalam contoh:
a=b=0; c=b+a; d = a+b**2 #etc etc
Dan lambda sangat kuat, tetapi itu tidak dimaksudkan untuk menggantikan seluruh fungsi, maksud saya Anda dapat meretasnya seperti (meminjam contoh dari kolega di atas):
makeTag = lambda tagName: "<{}>".format(tagName)
closeTag = lambda tagName: makeTag("/"+str(tagName))
openTag = lambda tagName: makeTag(tagName)
writeHMTLline = lambda tag,content: ""+opetTag(tag)+str(content)+closeTag(tag)
Tetapi apakah Anda benar-benar ingin melakukannya seperti ini? Ini sebagian besar tidak dapat dibaca setelah beberapa waktu, itu seperti sampai ke awal tali dimulai dengan ujung yang tidak terurai.
Lambdas disebut sebagai fungsi satu-satunya, dalam peta, memfilter dan mengurangi fungsi dalam Pemrograman Berorientasi Fungsional (antara lain). Misalnya mendapatkan nilai karakter dari nilai yang integer dan habis dibagi 2
chrDev2 = lambda INT: chr(INT) if isinstance(INT,int) and INT%2==0 else INT
someStringList = map( chrDev2, range(30) )
>>> ['\x00', 1, '\x02', 3, '\x04', 5, '\x06', 7, '\x08', 9, '\n', 11, '\x0c', 13, '\x0e', 15, '\x10', 17, '\x12', 19, '\x14', 21, '\x16', 23, '\x18', 25, '\x1a', 27, '\x1c', 29]
Anda bisa menggunakannya sebagai fungsi ekspresi fungsi dengan mendifinisikan fungsi kompleks (atau lebih dan beberapa lambda, dan meletakkannya di dalam lambda lain:
def someAnon(*args): return sum(list(args))
defAnon = lambda list: [ x*someAnon(*list) for x in list]
tetapi Python memiliki dukungan fungsi expresi dengan cara lain: -lets mengatakan Anda memiliki beberapa fungsi yang dipanggil superAwesomeFunction
dan fungsi itu dapat melakukan beberapa hal yang sangat mengagumkan, Anda dapat menetapkannya ke variabel dengan tidak memanggilnya, seperti ini:
SAF = superAwesomeFunction # there is no () at the end,
Jadi sekarang ketika Anda memanggil SAF Anda akan memanggil superAwesomeFunction atau metode. Jika Anda mencari melalui folder Lib Anda, Anda dapat menemukan bahwa sebagian besar __builtin__
modul python ditulis seperti itu. Ini dilakukan karena kadang-kadang Anda akan memerlukan beberapa fungsi yang melakukan tugas tertentu yang tidak cukup untuk dapat digunakan oleh pengguna tetapi diperlukan untuk beberapa fungsi. Jadi Anda memiliki pilihan, Anda tidak dapat memiliki 2 fungsi dengan nama "superAwesomeFunction", Anda dapat memiliki "superAwesomeFunctionDoingBasicStuf" dan "realSuperAwesomeFunction" dan daripada hanya meletakkan "realSuperAwesomeFunction" pada variabel "superAwesomeFunction" dan Anda selesai.
Anda dapat menemukan lokasi modul yang diimpor dengan memasukkan di konsol importedModule.__file__
(contoh nyata import os;os.__file__
), dan cukup ikuti direktori itu ke file yang disebut importModule.py dan buka di editor dan temukan bagaimana Anda dapat memaksimalkan "pengetahuan" Anda sendiri.
Saya harap ini membantu Anda dan mungkin rekan kerja lain yang bermasalah.