Function (ฟังก์ชัน)
ฟังก์ชันเป็นบล็อกโค้ดเพื่อดำเนินงานเฉพาะ จะมี scope ของตัวเอง และถูกเรียกด้วยชื่อ ฟังก์ชันทั้งหมดอาจมีศูนย์ (ไม่มี) อาร์กิวเมนต์ หรือมากกว่าหนึ่งอาร์กิวเมนต์ เมื่อออก ฟังก์ชันอาจจะคืนค่าหนึ่งหรือหลายค่า หรือไม่คืนค่า
ไวยากรณ์ฟังก์ชันพื้นฐาน
def functionName( arg1, arg2,...): ...... # Function_body ......
มาสร้างฟังก์ชันของเราเอง (user) ฟังก์ชันง่ายๆ ที่ชื่อ "sum" (ผู้ใช้ตั้งชื่อได้อะไรก็ได้) ฟังก์ชัน "sum" มีสองอาร์กิวเมนต์ชื่อ num1 และ num2 และจะคืนค่าผลรวมของอาร์กิวเมนต์ที่ส่งให้ฟังก์ชัน (sum) เมื่อเราเรียกฟังก์ชัน (sum) ด้วยค่า (อาร์กิวเมนต์) 5 และ 6 มันคืนค่า 11
def sum(num1, num2): return (num1 + num2)
ผลลัพธ์
>>> sum(5,6) 11
ดังนั้นจากข้างต้น เราเห็นคำสั่ง 'return' คืนค่าจากฟังก์ชัน Python
ฟังก์ชันช่วยให้เรา implement code reusability ได้ มีฟังก์ชันสามประเภท −
Built-in functions (какที่ชื่อบ่งชี้ ฟังก์ชันเหล่านี้มาพร้อมกับภาษา Python เช่น help() เพื่อขอความช่วยเหลือ max()- เพื่อหาค่าสูงสุด type()- เพื่อคืนชนิดของอ็อบเจกต์ และอื่นๆ อีกมากมาย)
User-defined functions (นี่คือฟังก์ชันที่ผู้ใช้สร้างเพื่อช่วยตัวเอง เช่น ฟังก์ชัน "sum" ที่เราสร้างข้างต้น)
Anonymous Functions (เรียกอีกอย่างว่า lambda functions และแตกต่างจากฟังก์ชันปกติที่ถูกกำหนดด้วยคีย์เวิร์ด def ถูกกำหนดด้วยคีย์เวิร์ด lambda)
Method (เมธอด)
เมธอดใน Python คล้ายกับฟังก์ชันบ้าง แต่มันเชื่อมโยงกับอ็อบเจกต์/คลาส เมธอดใน Python คล้ายกับฟังก์ชันมาก ยกเว้นสองความแตกต่างหลัก
เมธอดถูกใช้โดยนัย (implicitly) สำหรับอ็อบเจกต์ที่มันถูกเรียก
เมธอดเข้าถึงข้อมูลที่อยู่ภายในคลาสได้
ไวยากรณ์เมธอดทั่วไป
class ClassName: def method_name(): ............ # Method_body ................
มาเข้าใจเมธอดผ่านโค้ดง่ายๆ −
class Pet(object): def my_method(self): print("I am a Cat") cat = Pet() cat.my_method()
ผลลัพธ์
I am a Cat
ในโค้ดข้างต้น เรากำหนดคลาส "Pet" ก่อน แล้วเราสร้างอ็อบเจกต์ "cat" จาก blueprint นี้ ต่อมา เราเรียกเมธอดที่เราสร้างเองชื่อ my_method ด้วยอ็อบเจกต์ (คือ cat)
ความแตกต่างหลักระหว่าง Method และ Function ใน Python
เมื่อเราเข้าใจพื้นฐานของฟังก์ชันและเมธอดทั้งคู่แล้ว มาเน้นความแตกต่างหลักระหว่างพวกมัน −
แตกต่างจากฟังก์ชัน เมธอดถูกเรียกบนอ็อบเจกต์ เช่นในตัวอย่างข้างต้นเราเรียกเมธอดของเรา .i.e. "my_method" บนอ็อบเจกต์ "cat" ในขณะที่ฟังก์ชัน "sum" ถูกเรียกโดยไม่มีอ็อบเจกต์ นอกจากนี้ เนื่องจากเมธอดถูกเรียกบนอ็อบเจกต์ มันจึงสามารถเข้าถึงข้อมูลภายในมันได้
แตกต่างจากเมธอดที่สามารถเปลี่ยน state ของอ็อบเจกต์ได้ ฟังก์ชัน Python ไม่ทำอย่างนั้น และปกติจะ operate บนมัน
สรุปสั้นๆ เมธอดคือฟังก์ชันที่เป็นของอ็อบเจกต์