ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย dawthana » 11/01/2017 11:01 am

การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส) คือการสร้างฟังก์ชันจะใช้ lambda (แลมด้า) เป็นการสร้างฟังก์ชันโดยไม่ระบุชื่อแต่ยังคงระบุ arguments กี่ตัวก็ได้ แต่จะ return ค่าได้แค่ค่าเดียว และไม่สามารถเรียกฟังก์ชันเพื่อแสดงผลได้เพราะฟังก์ชันที่ไม่ได้มีการระบุชื่อจำเป็นต้องมี expression (เอ็กเพรสชั่น) คู่กันเสมอ

รูปแบบการสร้างฟังก์ชันแบบ Anonymous
    lambda [arg [,arg , ... , argn]] : expression
- ใช้loop (ลูป) ในการวนค่าจนครบ arguments โดยภายใต้ [...] จะมีหรือไม่มีก็อได้
- ต้องมี expression คู่กันเสมอ

ตัวอย่างการสร้างฟังก์ชันแบบไม่ระบุชื่อ
ff1.png
ff1.png (27.89 KiB) เปิดดู 261 ครั้ง


ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=UesLMF69WmI&index=19&list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM


ภาพประจำตัวสมาชิก
Dive Demo
PHP Sr. Member
PHP Sr. Member
โพสต์: 84
ลงทะเบียนเมื่อ: 01/02/2017 11:10 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย Dive Demo » 03/02/2017 2:40 pm

เข้าใจแล้วครับว่าส่วนของ Anonymous Functions ลักษณะเด่นคือการเป็นฟังก์ชั่นที่ไม่ต้องระบุชื่อ มีArgument ก็ตัวก็ได้แต่ต้องมี expression คู่กันเสมอ

Four
PHP Super Member
PHP Super Member
โพสต์: 407
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย Four » 23/01/2018 3:11 pm

โค้ด: เลือกทั้งหมด

num = lambda a, b: (a+b) * b
print("sum = ", num(2, 3))
print("sum = ", num(10, 20))


ผลรัน

รูปภาพ

ภาพประจำตัวสมาชิก
Jom07
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 514
ลงทะเบียนเมื่อ: 08/01/2018 9:56 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย Jom07 » 25/01/2018 12:50 am

โค้ด: เลือกทั้งหมด

test = lambda a, b: a* (a+b)
print("mindphp = ", test(10, 15))
print("python = ", test(35, 40))


ผลรัน

รูปภาพ

ศึกษาข้อมูลจาก : https://www.youtube.com/watch?v=UesLMF6 ... jreload=10
รูปภาพ

Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย Patcharanan.0399 » 21/04/2018 10:30 am

รูปแบบการเขียนฟังก์ชัน Anonymous

โค้ด: เลือกทั้งหมด

lambda [arg1 [,arg2, ..., argn]]: expression


โค้ด: เลือกทั้งหมด

summary = lambda arg1, arg2 : (arg1*arg2) + arg1
print 'Summary is : ', summary(28, 62)
print 'Summary is : ', summary(44, 88)


ผลการรัน
Anonymous.JPG
Anonymous.JPG (10.96 KiB) เปิดดู 157 ครั้ง

ฟังก์ชัน Anonymous สามารถระบุ Argument กี่ตัวก็ได้ แต่จะ return ค่าได้แค่ครั้งเดียว และไม่สามารถเรียกฟังก์ชันเพื่อแสดงผลได้ เพราะฟังก์ชันที่ไม่ได้มีการระบุชื่อจำเป็นต้องมี Expression คู่กันเสมอ


ศึกษาจาก https://youtu.be/UesLMF69WmI

rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย rangsan » 03/05/2018 1:01 pm

การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โค้ด: เลือกทั้งหมด

Annonymous = lambda arg1,arg2,arg3,arg4,arg5 : (arg1*arg2) + arg3 - arg4 + arg5 # Expression
print "Total of Value : ", Annonymous(20, 40, 60, 80, 100)
print "Total of Value : ", Annonymous(1, 3, 5, 7, 9)


ผลการรันโค้ด

Annonymous_function.png
Annonymous_function.png (20.76 KiB) เปิดดู 122 ครั้ง


ศึกษาจาก : https://www.youtube.com/watch?v=UesLMF6 ... lzdKrpxsMM
It’s never too late to start again.

anuwat somsakul
PHP Full Member
PHP Full Member
โพสต์: 44
ลงทะเบียนเมื่อ: 08/08/2018 9:49 am

Re: ทำความรู้จักกับภาษา python (19) : การสร้างฟังก์ชันแบบ Anonymous (อะนอนนิมัส)

โพสต์โดย anuwat somsakul » 10/08/2018 3:45 pm

การสร้างฟังก์ชั่นไม่ระบุชื่อ ใน ไพทอน The Anonymous Functions:

โค้ด: เลือกทั้งหมด

summary1 = lambda arg,arg2: (arg*arg2) + arg
print("value of sumary is",summary1(10,20))
print("value of sumary is",summary1(1,2))


ผลลัพธ์
Selection_011.png
Selection_011.png (6.78 KiB) เปิดดู 77 ครั้ง


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 9 และ บุคคลทั่วไป 0 ท่าน