การแทนที่เป็นคุณสมบัติของคลาสเพื่อเปลี่ยนการใช้งานเมธอดที่จัดเตรียมโดยคลาสพื้นฐานตัวใดตัวหนึ่ง
การเอาชนะเป็นส่วนสำคัญของ OOP เนื่องจากทำให้การสืบทอดใช้อำนาจอย่างเต็มที่ โดยการใช้วิธีการแทนที่คลาสอาจ "คัดลอก" คลาสอื่น หลีกเลี่ยงโค้ดที่ซ้ำกัน และในขณะเดียวกันก็ปรับปรุงหรือปรับแต่งส่วนหนึ่งของคลาสนั้น การเอาชนะเมธอดจึงเป็นส่วนหนึ่งของกลไกการสืบทอด
ในการแทนที่เมธอด Python เกิดขึ้นโดยเพียงแค่กำหนดเมธอดที่มีชื่อเดียวกันกับเมธอดในคลาสพาเรนต์ในคลาสลูก เมื่อคุณกำหนดเมธอดในออบเจกต์ คุณทำให้หลังนี้สามารถตอบสนองการเรียกเมธอดนั้นได้ ดังนั้นการนำไปใช้งานของบรรพบุรุษจะไม่เข้ามาเกี่ยวข้อง
class Parent(object):def __init__(self):self.value =4 def get_value(self):return self.value คลาส Child(Parent):def get_value(self):return self.value + 1 ก่อน>ตอนนี้วัตถุลูกมีพฤติกรรมแตกต่างออกไป
>>> c =Child()>>> c.get_value()5