วิธีการแทนที่ใน Python

เผยแพร่แล้ว: 2023-01-28

สารบัญ

ข้อกำหนดเบื้องต้นในการทำความเข้าใจวิธีการเอาชนะ:

การแทนที่เมธอดเป็นหนึ่งในแนวคิดที่สำคัญที่สุดในการเขียนโปรแกรมเชิงวัตถุ การใช้ฟังก์ชันเฉพาะในคลาสลูกที่กำหนดในคลาสพาเรนต์สามารถเปลี่ยนแปลงได้โดยการแทนที่เมธอด การแทนที่เมธอดสามารถกำหนดเป็นความสามารถของคลาสลูกในการปรับเปลี่ยนการดำเนินการของเมธอดที่เสนอโดยหนึ่งในคลาสพาเรนต์ ซึ่งเรียกว่าบรรพบุรุษ ในการแทนที่ฟังก์ชัน คลาสจะต้องปฏิบัติตามเกณฑ์ต่อไปนี้

  • คลาสที่สืบทอดได้: ไม่สามารถดำเนินการฟังก์ชันที่แทนที่ภายในคลาสได้ การสืบทอดคลาสลูกจากคลาสพาเรนต์เป็นสิ่งที่จำเป็น
  • ลายเซ็นของฟังก์ชันที่กำหนดใหม่ในคลาสลูกและในคลาสพาเรนต์ควรเหมือนกัน กล่าวอีกนัยหนึ่ง ฟังก์ชันที่ถูกแทนที่และฟังก์ชันในคลาสพาเรนต์ควรมีจำนวนอาร์กิวเมนต์และพารามิเตอร์เท่ากัน

ภาพรวมของวิธีการแทนที่ใน Python:

ตามที่กำหนดไว้ก่อนหน้านี้ เมธอดจะแทนที่คุณสมบัติของภาษาการเขียนโปรแกรมเชิงวัตถุโดยอาศัยอำนาจของคลาสย่อยที่เตรียมการอิมพลีเมนต์เฉพาะของเมธอดที่นำเสนอโดยหนึ่งในซูเปอร์คลาสของมัน เมธอดในคลาสย่อย (คลาสลูก) ถูกแทนที่ด้วยเมธอดซูเปอร์คลาส (คลาสพาเรนต์) เมื่อเมธอดคลาสย่อยมีพารามิเตอร์หรือลายเซ็น ชื่อเดียวกัน และประเภทส่งคืนหรือประเภทย่อยเหมือนกันกับเมธอดในคลาสซูเปอร์

วัตถุที่ใช้ในการเรียกใช้เมธอดที่เรียกใช้งานจะเป็นตัวกำหนดเวอร์ชัน เวอร์ชันในซูเปอร์คลาสจะถูกเรียกใช้งานหากใช้วัตถุในซูเปอร์คลาสเพื่อเรียกเมธอด อย่างไรก็ตาม ถ้าเมธอดถูกเรียกใช้โดยออบเจกต์ในคลาสย่อย เวอร์ชันของคลาสย่อยจะถูกดำเนินการ กล่าวอีกนัยหนึ่ง ประเภทของวัตถุที่ถูกอ้างถึงใช้เพื่อกำหนดเวอร์ชันของวิธีการที่ถูกแทนที่และดำเนินการ เวอร์ชันของเมธอดที่ถูกแทนที่ไม่ได้ถูกกำหนดโดยประเภทของตัวแปรอ้างอิง

ตรวจสอบหลักสูตรวิทยาศาสตร์ข้อมูลของ upGrad

ประโยชน์ของการเอาชนะวิธีการ:

ข้อได้เปรียบหลักของการแทนที่เมธอดใน Python คือคลาสเสนอโมเดลที่กำหนดโดยตัวมันเองไปยังเมธอดที่สืบทอดมาโดยไม่ต้องแก้ไขรหัสของคลาสพาเรนต์ คุณสมบัตินี้ยังมีประโยชน์ในกรณีที่คลาสย่อยใช้คลาสหลักที่มีคลาสย่อยหลายคลาส ในกรณีนี้ เมธอดและพารามิเตอร์ของคลาสพาเรนต์สามารถเรียกใช้โดยคลาสลูกได้โดยไม่ต้องแก้ไขรหัสของคลาสพาเรนต์

สำรวจหลักสูตรวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

หลักสูตรบริหารธุรกิจบัณฑิตสาขาวิทยาศาสตร์ข้อมูลจาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona
หลักสูตรประกาศนียบัตรขั้นสูงด้านวิทยาศาสตร์ข้อมูลจาก IIITB หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science and Business Analytics จาก University of Maryland หลักสูตรวิทยาศาสตร์ข้อมูล

อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา

เส้นทางอาชีพด้านวิทยาศาสตร์ข้อมูล: คู่มืออาชีพที่ครอบคลุม Data Science Career Growth: อนาคตของงานมาถึงแล้ว เหตุใดวิทยาศาสตร์ข้อมูลจึงมีความสำคัญ 8 วิธีที่วิทยาการข้อมูลนำคุณค่ามาสู่ธุรกิจ
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ สุดยอดสูตรโกงวิทยาศาสตร์ข้อมูลที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี เหตุผล 6 อันดับแรกที่คุณควรมาเป็นนักวิทยาศาสตร์ข้อมูล
หนึ่งวันในชีวิตของ Data Scientist: พวกเขาทำอะไร? Myth Busted: Data Science ไม่ต้องการการเข้ารหัส Business Intelligence vs Data Science: อะไรคือความแตกต่าง?

ความแตกต่างระหว่างการเอาชนะเมธอดและการโอเวอร์โหลดเมธอด

วิธีการเอาชนะ

วิธีการโอเวอร์โหลด

เมธอดหรือฟังก์ชันในคลาสพาเรนต์และคลาสย่อยต้องมีลายเซ็นและชื่อเดียวกัน ฟังก์ชันหรือเมธอดต้องมีชื่อเหมือนกัน อย่างไรก็ตามลายเซ็นของพวกเขาไม่จำเป็นต้องเหมือนกัน
นี่คือตัวอย่างของความหลากหลายแบบรันไทม์ กระบวนการนี้เป็นตัวอย่างของความหลากหลายในเวลาคอมไพล์
การสืบทอดเป็นสิ่งจำเป็นสำหรับการแทนที่เมธอดใน Python อาจต้องมีการสืบทอดคลาสในบางกรณี อย่างไรก็ตาม อาจไม่จำเป็นในทุกกรณี
การแทนที่เมธอดเกิดขึ้นระหว่างเมธอดในคลาสพาเรนต์และคลาสย่อย อย่างไรก็ตาม มันไม่สามารถเกิดขึ้นได้ภายในชั้นเรียน การโอเวอร์โหลดเมธอดเกิดขึ้นระหว่างเมธอดภายในคลาสเดียวกัน
คุณลักษณะนี้ใช้เพื่อปรับเปลี่ยนพฤติกรรมของวิธีการที่มีอยู่ ใช้เพื่อเพิ่มลักษณะการทำงานของเมธอด
ต้องมีคลาสอย่างน้อยสองคลาส (คลาสลูกและคลาสพาเรนต์) เพื่อดำเนินการแทนที่เมธอด ไม่จำเป็นต้องใช้คลาสเพิ่มเติมเนื่องจากการโอเวอร์โหลดเกิดขึ้นระหว่างเมธอดภายในคลาสเดียวกัน

หากคุณต้องการเรียนรู้เชิงลึกเกี่ยวกับการแทนที่เมธอดใน Python เราขอแนะนำให้คุณเรียน ปริญญาโทสาขาวิทยาศาสตร์ข้อมูล 18 เดือน upGrad เสนอหลักสูตรนี้จาก IIIT Bangalore และ Liverpool John Moore's University หลักสูตรนี้จะสอนทักษะต่างๆ เช่น สถิติ การวิเคราะห์เชิงทำนายโดยใช้ Python การเรียนรู้ของเครื่อง การแสดงข้อมูล การวิเคราะห์ข้อมูลขนาดใหญ่ และอื่นๆ นักเรียนที่มีความรู้เป็นอย่างดีเกี่ยวกับแนวคิดของ Python นั้นอยู่ในสถานะที่ดีที่จะจัดการกับวิชาต่างๆ เช่น การเรียนรู้เชิงลึก การประมวลผลภาษาธรรมชาติ การวิเคราะห์ธุรกิจ และวิศวกรรมข้อมูล

ต้องการแบ่งปันบทความนี้หรือไม่?

เตรียมพร้อมสำหรับอาชีพแห่งอนาคต

สมัครปริญญาโทสาขาวิทยาศาสตร์ข้อมูล