Python – Multiple Inheritance

การสืบทอดจากคลาสหลายคลาส คลาสนั้นสามารถสืบทอดคุณลักษณะจากคลาสต้นแบบได้พร้อมกันครั้งหลายคลาส โดยจะเรียกว่า multiple inheritance เมื่อทำการสืบทอดมาจากหลายคลาส คุณลักษณะทั้งหมดจากคลาสต้นแบบแต่ละคลาสจะถูกสืบทอดมายังคลาสนั้น วิธีการใช้งาน class Base1: pass class Base2: pass class MultiDerived(Base1, Base2): pass โดย multiDervied คลาสจะสืบทอดคุณลักษณะทั้งหมดมาจากทั้งคลาส Base1 และ Base2 การสืบทอดหลายระดับ เราสามารถทำการสืบทอดคลาสมาจาก คลาสที่ทำการสืบทอดมาจากคลาสอื่นอีกทีได้ ซึ่งเรียกว่า การสืบทอดในหลายระดับ โดยสามารถสืบทอดในรูปแบบนี้ได้ในหลายๆระดับ โดยคุณลักษณะจากคลาสต้นแบบและคลาสที่สืบทอดมาจากคลาสต้นแบบ จะถูกสืบทอดมายังคลาสที่ต้องการสืบทอดคุณลักษณะดังกล่าวทั้งหมด วิธีการใช้งาน class Base1: pass class DerviedLevel1(Base): pass class DerivedLevel2(DerivedLevel1): pass จากตัวอย่าง คลาส DerviedLevel1 นั้นสืบทอดมาจากคลาส Base1 จากนั้นคลาส DerivedLevel2 ก็ทำการสืบทอดมาจากคลาส DerviedLevel1 อีกทีหนึ่ง ลำดับการทำงานของฟังก์ชันสำหรับการสืบทอดคลาส ทุกๆ คลาสจะสืบทอดมาจากคลาส Read more about Python – Multiple Inheritance[…]

Python – Inheritance

การสืบทอด(Inheritance) การสืบทอดเป็นคุณลักษณะเด่นอย่างหนึ่งสำหรับการเขียนโปรแกรมแบบ OO(Object-Oriented Programming) โดยอ้างถึงการกำหนดคลาสขึ้นมาใหม่และด้วยคุณลักษณะจากคลาสที่มีอยู่โดยไม่มีการแก้ไขใดๆ โดยคลาสใหม่เรียกว่าคลาสสืบทอด(derived or child class) และคลาสที่เป็นต้นแบบของการสืบทอดนั้นเรียกว่าคลาส base(หรือ parent) class BaseClass: # รายละเอียดของ Base Class class DerivedClass(BaseClass): # รายละเอียดของ Derived Class คลาสสืบทอด(derived class) ได้สืบทอดคุณลักษณะจากคลาสต้นแบบ และสามารถเพิ่มคุณลักษณะใหม่ลงไปได้ ซึ่งทำให้เราสามารถสร้างคลาสใหม่โดยการนำคุณลักษณะเดิมที่มีอยู่แล้วมาปรับปรุงเพื่อใช้งานได้มากขึ้น ตัวอย่างการสืบทอด กำหนดให้ polygon เป็นรูปปิดซึ่งมีด้าง 3 ด้าน เราทำการสร้างคลาส polygon ได้ดังนี้ class Polygon: def __init__(self, no_of_sides): self.n = no_of_sides self.sides = [0 for i in range(no_of_sides)] def inputSides(self): Read more about Python – Inheritance[…]

Python – Objects and Class

ไพธอนเป็นหนึ่งในภาษาที่เป็น Object Oriented ซึ่งต่างจาก procedure oriented language ที่จะเน้นการใช้งานเป็นฟังก์ชัน แต่ Object Oriented จะเน้นการใช้งานในรูปแบบออบเจค โดยออบเจ็คแต่ละชนิดนั้นประกอบด้วยข้อมูลตัวแปรและฟังก์ชันเพื่อมาใช้ทำงานกับข้อมูลต่างๆ และคลาสซึ่งเป็นการกำหนดรูปแบบให้ออบเจ็คแต่ละชนิด เราสามารถเปรียบเทียบคลาสเป็นเหมือนโครงร่างของบ้าน ซึ่งจะประกอบด้วยข้อมูลของพื้น, ประตู, หน้าต่าง และอื่นๆ ขึ้นอยู่กับรายละเอียดนี้เราสามารถประกอบเป็นบ้าน โดยบ้านเป็นออบเจ็คหนึ่ง ซึ่งบ้านหลายๆหลังสามารถสร้างจากการรายละเอียดเริ่มต้นเหล่านี้ ซึ่งสามารถสร้างเป็นออบเจ็คได้หลายแบบจากคลาสเดียวกันซึ่งจะเรียกว่า instance ของคลาส การกำหนดคลาสในไพธอน สำหรับการกำหนดฟังก์ชันเราจะเริ่มต้นประกาศฟังก์ชันด้วยคีย์เวิร์ด def แต่สำหรับการกำหนดคลาสเราจะเริ่มต้นประกาศคลาสด้วยคีย์เวิร์ด class โดยสิ่งแรกที่มักประกาศคือ docstring ซึ่งเป็นข้อควาที่ระบุข้อมูลคร่างๆ เกี่ยวกับคลาสนั้นๆ แต่ก็ไม่ได้บังคับตายตัวว่าจำเป็นต้องใส่ทุกครั้ง แต่การใส่จะทำให้เมื่อกลับมาอ่านแล้วสามารถจะทำความเข้าใจเกี่ยวกับคลาสได้รวดเร็วขึ้น ตัวอย่างการใช้งาน class abc ”’ docstring here ”’ pas คลาสจะทำการสร้าง local namespace ขึ้นมาใหม่ซึ่งใช้ประกาศแอทริบิวต์หรือฟังก์ชัน และยังมีแอททริบิวท์พิเศษที่เริ่มต้นชื่อด้วย __ เช่น __doc__ ใช้กำหนดรายละเอียด docstring ของคลาส Read more about Python – Objects and Class[…]