การสร้าง grandchild class
ในแบบฝึกหัดนี้ จะใช้การสืบทอด (inheritance) เพื่อสร้างคลาส Tweets จากคลาส SocialMedia โดย grandchild class Tweets นี้จะสามารถจัดการรายละเอียดเฉพาะของ Twitter ได้ เช่น การ retweet
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
หลักการวิศวกรรมซอฟต์แวร์ใน Python
คำแนะนำการฝึกหัด
- เติมคำสั่ง
classให้TweetsสืบทอดมาจากSocialMedia(โหลดSocialMediaไว้ในสภาพแวดล้อมแล้ว) - ใช้
super()เพื่อเรียกเมธอด__init__ของคลาสแม่ - นิยาม
retweet_textโดยใช้help()เพื่อตรวจสอบชื่อพารามิเตอร์ที่ถูกต้องสำหรับการเรียกfilter_lines(filter_linesโหลดไว้ในสภาพแวดล้อมแล้ว) returnretweet_textจาก_process_retweetsในรูปแบบ instance ของSocialMedia
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define a Tweet class that inherits from SocialMedia
class Tweets(____):
def __init__(self, text):
# Call parent's __init__ with super()
____
# Define retweets attribute with non-public method
self.retweets = self._process_retweets()
def _process_retweets(self):
# Filter tweet text to only include retweets
retweet_text = filter_lines(self.text, ____='RT')
# Return retweet_text as a SocialMedia object
return ____(retweet_text)