คู่มือฉบับสมบูรณ์สำหรับวิธีการโอเวอร์โหลดใน 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 เดือนในการทำให้พื้นฐานของคุณแข็งแกร่ง โพสต์นั้นอีกครั้งขึ้นอยู่กับว่าคุณฝึกฝนมากแค่ไหนและโครงการที่ต้องทำ หากคุณปฏิบัติตามใบรับรองออนไลน์ คุณควรจะสามารถเชี่ยวชาญได้ภายในหนึ่งปี