Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ความแตกต่างระหว่าง Method และ Function ใน Python


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 บนมัน

สรุปสั้นๆ เมธอดคือฟังก์ชันที่เป็นของอ็อบเจกต์