คู่มือฉบับสมบูรณ์สำหรับวิธีการโอเวอร์โหลดใน Python (พร้อมตัวอย่าง)
เผยแพร่แล้ว: 2022-04-23การโอเวอร์โหลดคือความสามารถของฟังก์ชัน วิธีการ หรือโอเปอเรเตอร์ในการทำงานที่แตกต่างกัน เมื่อคุณส่งผ่านพารามิเตอร์ต่างๆ ไปที่เดียวกัน วิธีการโอเวอร์โหลดหรือฟังก์ชั่นโอเวอร์โหลดใน Python มีคำศัพท์ที่ใช้กันทั่วไป ข้อดีหลักบางประการของการโอเวอร์โหลดคือ คุณสามารถใช้วิธีเดียวได้หลายวิธี ซึ่งช่วยให้โค้ดของคุณสะอาดขึ้น และขจัดความซับซ้อนเมื่อทำงานกับทีม
วิธีการโอเวอร์โหลดคืออะไร?
ในการเขียนโปรแกรมเชิงวัตถุ วิธีการโอเวอร์โหลดจะใช้ในสถานการณ์ที่ สำหรับวัตถุเฉพาะ สามารถเรียกวิธีการเฉพาะได้มากกว่าหนึ่งวิธีตามข้อกำหนดของโครงการ
ตัวอย่างของวิธีการโอเวอร์โหลดใน Python จะกล่าวถึงในรายละเอียดในบทความต่อไป
วิธีการเอาชนะคืออะไร?
การ แทนที่เมธอด ใน Python นั้นคล้ายกับเมธอดโอเวอร์โหลด ยกเว้นเมธอดการแทนที่เกิดขึ้นระหว่างคลาสย่อยและซูเปอร์คลาส มีพารามิเตอร์เหมือนกับเมื่อมีการเรียกเมธอด ทว่าพวกมันมีพฤติกรรมที่แตกต่างออกไปเนื่องจากฟังก์ชั่นบางอย่างถูกแทนที่จากซูเปอร์คลาส
ตัวอย่างวิธีการเอาชนะ
คลาส X:
def method1(ตัวเอง):
print('ฉันเป็นฟีเจอร์แรกของคลาส X')
def method2(ตัวเอง):
print('ฉันเป็นฟีเจอร์ที่สองของคลาส X')
คลาส Y(X):
def method1(ตัวเอง):
print('ฉันเป็นฟีเจอร์แรกที่แก้ไขของคลาส X ในคลาส Y')
def method3 (ตัวเอง):
print('ฉันเป็นคุณสมบัติของคลาส Y')
obj = Y()
obj.method1()
เอาท์พุท:
ฉันเป็นคุณสมบัติแรกที่แก้ไขของคลาส X ในคลาส Y
method1 ถูกแทนที่โดยคลาส Y
เรียนรู้หลักสูตรวิทยาศาสตร์ข้อมูลออนไลน์ที่ upGrad
วิธีการโอเวอร์โหลดใน Python
ปัญหาเกี่ยวกับวิธีการโอเวอร์โหลดใน Python คือ Python ไม่รองรับโดยค่าเริ่มต้น อย่างไรก็ตาม มีวิธีแก้ปัญหาให้ทำเช่นเดียวกัน
ปัญหา
ให้เราพิจารณารหัสต่อไปนี้:
def เพิ่ม (a, b):
s = a + b
พิมพ์
def เพิ่ม (a, b, c):
s = a + b + c
พิมพ์
# เพิ่ม (8, 9) แสดงข้อผิดพลาด
เพิ่ม (8, 9, 2)
เมื่อมองแวบแรก โค้ดก็ดูดี แต่เมื่อคุณพยายามรันด้วยสองอาร์กิวเมนต์ Python จะแสดงข้อผิดพลาดให้คุณเห็น เพราะใน Python เมื่อคุณมีเมธอดมากกว่าหนึ่งเมธอดที่มีชื่อเดียวกันแต่มีจำนวนอาร์กิวเมนต์ต่างกัน มีเพียง สามารถใช้วิธีการที่กำหนดไว้ล่าสุดได้
มีสองวิธีที่เราสามารถเอาชนะปัญหาวิธีการโอเวอร์โหลดใน Python ได้
1: การใช้วิธีการเดียวกันจะแตกต่างกันไปตามประเภทข้อมูลของอาร์กิวเมนต์
เราสามารถเห็นอาร์กิวเมนต์เพื่อทราบชนิดข้อมูลพร้อมกับ *args ที่อนุญาตให้ส่งผ่านจำนวนตัวแปรของอาร์กิวเมนต์ไปยังเมธอดใน Python เราสามารถใช้ if คำสั่งเพื่อควบคุมวิธีการทำงานตามอินพุต
รหัส:
def เพิ่ม (dt, *args):
ถ้า dt =='int':
s = 0
ถ้า dt =='str':
ส = ”
สำหรับ x ใน args:
s = s + x
พิมพ์
เพิ่ม ('int', 11, 9)
เพิ่ม (“str”, “สวัสดี,”, “สบายดีไหม?”)
เอาท์พุท:
20
สวัสดี สบายดีไหม?
นี่เป็นวิธีแก้ปัญหาแรกในการใช้วิธีโอเวอร์โหลดใน Python
สำรวจหลักสูตรวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
Executive Post Graduate Program in Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ | วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona |
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland | ดูหลักสูตรวิทยาศาสตร์ข้อมูลทั้งหมด |
2: ใช้มัณฑนากรจัดส่งหลายรายการ (วิธีที่มีประสิทธิภาพมากขึ้น)
Multiple Dispatch Decorator เป็นวิธีแก้ปัญหาชั่วคราวน้อยกว่าและทำงานได้ตามที่ควรจะเป็น คุณสามารถติดตั้งโดยใช้ pip3
pip3 ติดตั้งการแจกจ่ายหลายรายการ
รหัส:
จากการจัดส่งการนำเข้าหลายรายการ
@dispatch(int,int) # สำหรับ 2 อาร์กิวเมนต์จำนวนเต็ม
def เพิ่ม (n1,n2):
s = n1 + n2
พิมพ์
@dispatch(int,int,int) # สำหรับอาร์กิวเมนต์จำนวนเต็ม 3 ตัว
def เพิ่ม (n1,n2,n3):
s = n1 + n2 + n3
พิมพ์
@dispatch(float,float,float) # สำหรับอาร์กิวเมนต์ float
def เพิ่ม (n1,n2,n3):
s = n1 + n2 + n3
พิมพ์ (s
เพิ่ม(5,2)
เพิ่ม(6,1,4)
เพิ่ม(3.4,1.2,5.6)
เอาท์พุท:
7
11
10.2
เมื่อดำเนินการ โปรแกรมเลือกจ่ายงานจะสร้างวัตถุใหม่ที่จัดเก็บการใช้งานที่แตกต่างกันของวิธีการและตัดสินใจเลือกวิธีการขึ้นอยู่กับประเภทและจำนวนของอาร์กิวเมนต์ที่ส่งผ่านขณะเรียกใช้เมธอด วิธีการโอเวอร์โหลดใน Python วิธีนี้มีประสิทธิภาพมากกว่า
อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม | การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ | เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ |
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ | แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี | 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล |
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? | Myth Busted: Data Science ไม่ต้องการการเข้ารหัส | Business Intelligence vs Data Science: อะไรคือความแตกต่าง? |
บทสรุป
หากคุณต้องการเข้าสู่สาขา Data Science Python ถือเป็นก้าวแรกที่ดี หากต้องการเจาะลึกและศึกษาหัวข้อเพิ่มเติม คุณสามารถดูหลักสูตรการรับรองออนไลน์ขั้นสูง เช่น Executive Program in Data Science โดย IIIT-Bangalore ร่วม กับ upGrad โปรแกรมนี้ครอบคลุมประเด็นที่สำคัญของวิชานี้และให้ประโยชน์เพิ่มเติมมากมาย เช่น ความช่วยเหลือด้านงาน การให้คำปรึกษาแบบ 1:1 การสนับสนุนออนไลน์ การบรรยายสด และโมดูลเพิ่มเติมสำหรับผู้ที่ชื่นชอบที่ต้องการเพิ่มทักษะเพิ่มเติม
อะไรคือความแตกต่างระหว่างฟังก์ชันและวิธีการใน Python?
ใน Python มีฟังก์ชันสองประเภท: ฟังก์ชันในตัวและฟังก์ชันที่ผู้ใช้กำหนดเอง print() และ len() เป็นตัวอย่างของฟังก์ชันในตัว ฟังก์ชันที่ผู้ใช้กำหนดเองใน python คือฟังก์ชันที่เราสามารถกำหนดตัวเองให้ทำงานเฉพาะมากกว่าหนึ่งครั้งในโปรแกรมทั่วไป เมธอดก็เหมือนกับฟังก์ชัน ยกเว้นเมธอดนั้นเป็นของคลาสและสามารถเรียกได้บนอ็อบเจ็กต์เท่านั้น (ไวยากรณ์: obj.method())
ฉันจะเลือกระหว่าง Python และ R ได้อย่างไร
Python และ R เป็นภาษายอดนิยมสองภาษาที่ใช้สำหรับ Data Science แม้ว่าสิ่งที่จะใช้จะขึ้นอยู่กับปัจจัยหลายประการ เช่น บริษัทที่คุณตั้งเป้า ประเภทของโครงการ ความต้องการของลูกค้า ฯลฯ โดยทั่วไป หากคุณเป็นมือใหม่ในการเขียนโปรแกรม ทำงานในสภาพแวดล้อมทางวิศวกรรมที่สร้างแอปพลิเคชันขนาดใหญ่ Python เป็นทางเลือกที่ดี ในทางกลับกัน หากคุณเคยมีประสบการณ์การเขียนโปรแกรมมาก่อนและต้องการเรียกใช้งานการวิเคราะห์ข้อมูลอย่างรวดเร็ว และแสดงภาพข้อมูลของคุณโดยใช้กราฟิกที่สวยงามเพื่อการตัดสินใจที่ดีขึ้นในเชิงสถิติ R คือทางที่ไป
ใช้เวลานานเท่าใดจึงจะเชี่ยวชาญ Data Science?
ทุกคนมีจังหวะการเรียนรู้ของตัวเอง แม้ว่าสำหรับผู้เริ่มต้นที่ไม่มีประสบการณ์ในการเขียนโปรแกรมมาก่อน คุณจะใช้เวลาประมาณ 6-7 เดือนในการทำให้พื้นฐานของคุณแข็งแกร่ง โพสต์นั้นอีกครั้งขึ้นอยู่กับว่าคุณฝึกฝนมากแค่ไหนและโครงการที่ต้องทำ หากคุณปฏิบัติตามใบรับรองออนไลน์ คุณควรจะสามารถเชี่ยวชาญได้ภายในหนึ่งปี