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

จะแทนที่วิธีการเรียนใน Python ได้อย่างไร?


การแทนที่เป็นคุณสมบัติของคลาสเพื่อเปลี่ยนการใช้งานเมธอดที่จัดเตรียมโดยคลาสพื้นฐานตัวใดตัวหนึ่ง

การเอาชนะเป็นส่วนสำคัญของ 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