แนวคิดการเขียนโปรแกรมเชิงวัตถุใน Python
เผยแพร่แล้ว: 2020-12-01Object-Oriented เป็นกระบวนทัศน์การเขียนโปรแกรมที่เป็นไปตามแนวคิดของคลาสและอ็อบเจ็กต์แทนที่ฟังก์ชันและตรรกะ เป็นที่รู้จักกันว่าเป็นวิธีการเขียนโค้ดแฟนซีที่จัดระเบียบโค้ดในลักษณะที่เพิ่มความสามารถในการอ่านและบำรุงรักษาโค้ด แนวคิด OOP เป็นหัวข้อสำคัญในการเขียนโปรแกรมและช่วยสร้างโมดูลที่นำกลับมาใช้ใหม่ได้สำหรับงานต่างๆ ใน Data Science
ซึ่งมักจะเป็นข้อกำหนดเบื้องต้นในขณะที่สร้างโมเดลการเรียนรู้เชิงลึกโดยใช้ไลบรารีต่างๆ เช่น Pytorch ซึ่งใช้โมเดลพื้นฐานซ้ำเพื่อเพิ่มเลเยอร์ที่กำหนดเอง มาสำรวจว่าแนวคิดนี้สอนอะไรและจะนำไปใช้อย่างไรในกรณีการใช้งานจริง
สารบัญ
แนวคิด OOP คืออะไร?
พิจารณาสมาร์ทโฟนที่สามารถเป็นได้กับทุกยี่ห้อ แต่ก็เป็นสิ่งที่พบได้ทั่วไปในหลายๆ อย่าง ทั้งหมดมีหน้าจอ ลำโพง ปุ่ม และในระดับซอฟต์แวร์ เกือบทั้งหมดเป็นระบบปฏิบัติการ Android พิจารณากรณีที่ทุกบริษัทผลิตซอฟต์แวร์ตั้งแต่เริ่มต้น แม้แต่เคอร์เนลที่ควบคุมส่วนประกอบฮาร์ดแวร์ส่วนใหญ่
นี้จะกลายเป็นกระบวนการที่น่าเบื่อและมีราคาแพง ดังนั้นจึงเพิ่มราคาของอุปกรณ์ จะเกิดอะไรขึ้นถ้ามีแบบจำลองนามธรรมหรือแบบทั่วไปที่ผู้ผลิตรายใดก็ได้สามารถเปลี่ยนแปลงได้ตามความต้องการของพวกเขา แนวคิดนี้พยายามจับวิธีการแบบคลาสนี้โดยที่โค้ดมีโครงสร้างอยู่ในคลาสด้วยเมธอด accessor ที่แตกต่างกัน
คลาสและออบเจกต์คืออะไร?
ชั้นเรียนเป็นพิมพ์เขียวของสิ่งที่ต้องดำเนินการ หากเราพิจารณาตัวอย่างก่อนหน้านี้ เราสามารถมีฟังก์ชันสำหรับโทรหาบุคคล รับสาย ข้อความ เล่นเพลง หรือทำอย่างอื่นได้
สิ่งเหล่านี้เป็นเรื่องปกติสำหรับสมาร์ทโฟนทุกเครื่อง การทำงานภายในของพวกมันก็คล้ายกัน และถือได้ว่าเป็นคลาสของฟังก์ชั่นสมาร์ทโฟนหรือคลาส ออบเจ็กต์สามารถกำหนดเป็นแบรนด์สมาร์ทโฟนทั้งหมดที่จะใช้การใช้งานทั่วไปนี้ในผลิตภัณฑ์ของตนโดยมีการดัดแปลง
คลาสฐานนี้สามารถมีได้หลายอินสแตนซ์ และทุกอินสแตนซ์สามารถเก็บสถานะค่าที่แตกต่างกันโดยไม่รบกวนอ็อบเจ็กต์อื่น ใน Python สามารถประกาศคลาสได้โดยใช้คลาสคีย์เวิร์ดที่สงวนไว้ นอกจากนี้ __init__ constructor ใช้เพื่อเริ่มต้นตัวแปรคลาส
บริษัทคลาส:
def __init__ (ตัวเอง):
self.name = 'อัพเกรด'
def display_name (ตัวเอง):
พิมพ์(f”ชื่อบริษัทคือ: {self.name}”)
ซม. = บริษัท()
cm.display_name()
อ่านเพิ่มเติม: เงินเดือนนักพัฒนา Python ในอินเดีย
เสาหลักของ OOP
ตอนนี้เราคุ้นเคยกับโครงสร้างพื้นฐานของกระบวนทัศน์นี้แล้ว มาดูคุณลักษณะ/ลักษณะที่สำคัญที่สุดบางประการของแนวคิดนี้:
การห่อหุ้ม
สิ่งนี้ระบุว่าเมธอด (หรือฟังก์ชัน) ของคลาสและข้อมูลที่เกี่ยวข้องนั้นถูกห่อหุ้มหรือป้องกันจากการเข้าถึงโดยบังเอิญหรือจากภายนอก ซึ่งหมายความว่าแอตทริบิวต์ที่กำหนดไว้ในขอบเขตส่วนตัวหรือที่มีการป้องกันไม่สามารถเข้าถึงได้นอกชั้นเรียน
มีข้อกังวลสำหรับ Python ว่าไม่มีแนวคิดเกี่ยวกับตัวแปรส่วนตัวในภาษานี้ ดังนั้นแอตทริบิวต์สามารถเข้าถึงได้จากภายนอกคลาส
มีวิธีการจดจำแอตทริบิวต์ส่วนตัวโดยใช้เครื่องหมายขีดล่างคู่ที่จุดเริ่มต้นของการประกาศ และหากคุณพยายามเข้าถึงสิ่งนี้นอกคลาสผ่านวัตถุเดียวกัน คุณจะได้รับแจ้งด้วย AttributeError เนื่องจาก Python ใช้ชื่อ mangling ทุกครั้งที่ตรวจพบ ตัวแปรส่วนตัว สิ่งนี้ไม่ได้ให้การรักษาความปลอดภัยใดๆ กับแอตทริบิวต์ของคุณ เนื่องจากยังสามารถเข้าถึงได้
มรดก
ดังที่คำกล่าวไว้ กำลังนำส่วนหนึ่งของคลาสที่มีอยู่ซึ่งเรียกว่าคลาสพาเรนต์ไปยังคลาสใหม่ที่เรียกว่าคลาสย่อยโดยมีการเปลี่ยนแปลงเพียงเล็กน้อยหรือไม่มีเลย เราสามารถเชื่อมโยงสิ่งนี้กับตัวอย่างของเราในลักษณะนี้ที่แบรนด์สมาร์ทโฟนทั้งหมดสืบทอดคลาสโทรศัพท์ทั่วไปที่จะช่วยให้พวกเขาดำเนินการฟังก์ชั่นพื้นฐาน และพวกเขาสามารถเพิ่มรหัสพิเศษของพวกเขาเพื่อยกระดับประสบการณ์ผู้ใช้ตามความต้องการของพวกเขา ใน Python การสืบทอดคลาสทำได้โดย:
คลาส A:
เนื้อหาบางส่วน
คลาส B(A):
เนื้อหาของคลาสที่ได้รับ
มีแนวคิดอื่นที่เกี่ยวข้องกับการสืบทอดที่เรียกว่าฟังก์ชันแทนที่ สมมุติว่าฟังก์ชั่นกล้องของสมาร์ทโฟนทั่วไปไม่ค่อยดีนัก และผู้ผลิตก็มีวิธีแก้ปัญหาที่ดีกว่านี้ พวกเขาสามารถแทนที่ฟังก์ชันนี้โดยตรงโดยกำหนดอีกครั้งในคลาสย่อยและนำการเปลี่ยนแปลงไปใช้ที่นั่น

สิ่งที่เป็นนามธรรม
มันกำหนดพิมพ์เขียวหรือส่วนต่อประสานกับการใช้งานคลาสย่อย หมายความว่าวิธีการบางอย่างถูกกำหนดในคลาสฐานซึ่งยังไม่ได้ดำเนินการอย่างสมบูรณ์และกำหนดเฉพาะมุมมองนามธรรมเท่านั้น สามารถช่วยในการติดตามคุณสมบัติต่าง ๆ ของโมดูลและโมดูลย่อยที่จะสร้าง
ตัวอย่างเช่น สมาร์ทโฟนบางรุ่นรองรับ NFC (การเชื่อมต่อระยะใกล้) และสามารถกำหนดฟังก์ชันการทำงานนี้ในคลาสพื้นฐานและสามารถเข้ารหัสการใช้งานในคลาสย่อยของโทรศัพท์ผลลัพธ์ ด้วยวิธีนี้ คลาสพื้นฐานที่เป็นนามธรรมสามารถให้มุมมองโดยรวมของโมดูลและการใช้งานที่ตามมา นี่คือตัวอย่าง:
โทรศัพท์คลาส:
กล้อง def (ตัวเอง):
ผ่าน
def NFC (ตัวเอง):
ผ่าน
คลาส Xyz (โทรศัพท์):
def NFC (ตัวเอง):
กลับ True
เรียนรู้เกี่ยวกับ: เครื่องมือ Python ยอดนิยม
ความหลากหลาย
ถ้าเราไปตามความหมายราก มันก็หมายถึงสิ่งเดียวกันหลายรูปแบบ Polymorphism กำหนดฟังก์ชันตามจำนวนหรือประเภทของอาร์กิวเมนต์ที่ส่งผ่าน ตัวอย่างเช่น ฟังก์ชันความยาวใน Python สามารถใช้ iterable หรือ object ชนิดใดก็ได้ และคืนค่าความยาวจำนวนเต็ม
สิ่งนี้สามารถยกมาเป็นฟังก์ชั่นโอเวอร์โหลดได้ แต่นี่คือสิ่งที่จับได้ในภาษา Python เราไม่สามารถกำหนดฟังก์ชันชื่อเดียวกันด้วยอาร์กิวเมนต์ที่แตกต่างกันได้ และหากทำเสร็จแล้ว จะพิจารณาเฉพาะรายการสุดท้ายเท่านั้น
กรณีใช้งานจริงของ OOP
เราได้เห็นแล้วว่าแนวคิดนี้เกี่ยวกับอะไรและฟีเจอร์ใดบ้างที่มีให้ ดูตัวอย่างบางส่วนที่คุณสามารถนำแนวคิดนี้ไปใช้:
Jinja Templating: หากคุณมีประสบการณ์กับเฟรมเวิร์ก Python's Flask ซึ่งจัดการเส้นทางและฝั่งเซิร์ฟเวอร์ เทมเพลตนี้จะช่วยในการจัดการข้อมูลนี้ในส่วนหน้า โดยทั่วไป ไฟล์ HTML พื้นฐานจะถูกสร้างขึ้นซึ่งจากนั้นทุกหน้าจะมีรูปแบบเดียวกันทั่วทั้งเว็บไซต์
แอปพลิเคชัน Kivy: นี่คือไลบรารีที่ให้คุณสร้างแอปพลิเคชันหลามที่ใช้ GUI ข้ามแพลตฟอร์ม (Android และ IOS) และที่นี่การเขียนโปรแกรมส่วนใหญ่ใช้แนวคิด OOP
ORM: ตัวแม ปเชิงวัตถุเสนอวิธีการกำหนดฐานข้อมูลเชิงสัมพันธ์ในโค้ดของแอปพลิเคชันโดยใช้ภาษาใดก็ได้ ตัวอย่างเช่น ใน Django คุณสามารถกำหนดโมเดลประเภทต่างๆ โดยใช้คลาสสำหรับผู้ใช้ประเภทต่างๆ
บทสรุป
ในบทความนี้ เราได้พูดถึงแนวคิด OOP ว่าอะไรคือองค์ประกอบพื้นฐาน (คลาสและออบเจกต์) เสาหลักที่แตกต่างกัน และเน้นตัวอย่างบางส่วนที่นำกระบวนทัศน์นี้มาใช้ มีสถานที่หลายแห่งที่พิจารณาวิธีการเขียนโปรแกรมนี้เนื่องจากการจัดการโค้ดที่ดีขึ้น การทำงานร่วมกัน และการจัดเตรียมฟังก์ชันที่เป็นนามธรรมให้กับโปรแกรมอื่นๆ ที่ขึ้นอยู่กับสิ่งนี้
หากคุณอยากเรียนรู้เกี่ยวกับ python, data science, ลองดู IIIT-B & upGrad's PG Diploma in Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานและเสนอกรณีศึกษาและโครงการมากกว่า 10 รายการ, การประชุมเชิงปฏิบัติการเชิงปฏิบัติ, การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม ตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
OOP คืออะไร?
การเขียนโปรแกรมเชิงวัตถุ ย่อว่า OOP เป็นเทคนิคการเขียนโปรแกรมคอมพิวเตอร์ที่จัดระเบียบการออกแบบซอฟต์แวร์ตามข้อมูล แทนที่จะจัดระเบียบตามฟังก์ชันและตรรกะ OOP มุ่งเน้นไปที่อ็อบเจ็กต์ เช่น ฟิลด์ข้อมูลที่มีคุณสมบัติและพฤติกรรมที่แตกต่างกันซึ่งนักพัฒนาต้องการควบคุมมากกว่าตรรกะที่จำเป็นในการจัดการ วิธีการเขียนโปรแกรมนี้เหมาะสำหรับแอปพลิเคชันขนาดใหญ่และซับซ้อนซึ่งมีการอัปเดตหรือบำรุงรักษาอยู่ตลอดเวลา OOP ครอบคลุมถึงความคิดริเริ่มด้านการผลิต การออกแบบ และแอปพลิเคชันบนมือถือ ข้อดีอื่นๆ ของภาษานี้คือการใช้โค้ดซ้ำ ความสามารถในการปรับขนาด และประสิทธิภาพ
OOP มีภาษาอะไรบ้าง?
ภาษาโปรแกรมเชิงวัตถุประกอบขึ้นจากภาษาเขียนโค้ดที่ใช้บ่อยที่สุดหลายภาษาในอุตสาหกรรมคอมพิวเตอร์ในปัจจุบัน ภาษา OOP มีอยู่ทุกที่ ภาษาเหล่านี้ใช้ประโยชน์จากวัตถุที่มีทั้งข้อมูลและรหัส Encapsulation, abstraction, polymorphism และ inheritance เป็นแนวคิดการเขียนโปรแกรมเชิงวัตถุ ภาษาโปรแกรมเชิงวัตถุยอดนิยม ได้แก่ Java, Python, C++, Lisp และ Perl พวกเขาช่วยในการเขียนโปรแกรมโดยใช้กระบวนทัศน์ของคลาสและอ็อบเจ็กต์ ภาษาอื่นๆ ที่รองรับหลักการเชิงวัตถุ ได้แก่ Perl, Objective-C, Dart, Lisp, JavaScript และ PHP
เหตุใด OOP จึงเป็นที่นิยม
มีหลายสาเหตุว่าทำไม OOP จึงเป็นที่นิยม นักพัฒนาสามารถนำโค้ดเชิงวัตถุกลับมาใช้ใหม่ได้ คุณยังสามารถใช้การสืบทอดเพื่อทำซ้ำข้อมูลและการทำงานที่สร้างไว้ก่อนหน้านี้ ซึ่งช่วยประหยัดเวลา ลดความซับซ้อนของโค้ด ประหยัดพื้นที่ และทำให้เขียนโค้ดได้ง่ายขึ้นด้วยนิ้วมือของเรา เนื่องจากโค้ดส่วนใหญ่อยู่ในที่เดียวและมีการเรียกใช้และนำกลับมาใช้ใหม่ การดูแลรักษาจึงง่ายกว่ามาก แม้ว่าภาษาส่วนใหญ่จะมีความปลอดภัยในระดับหนึ่ง แต่ภาษาเชิงวัตถุนั้นสะดวกกว่าเนื่องจากการห่อหุ้มรวมถึงความปลอดภัย ภาษาโปรแกรมเชิงวัตถุแบ่งโปรแกรมออกเป็นวัตถุและคลาส นี่เป็นข้อได้เปรียบเนื่องจากทำให้แอปพลิเคชันของคุณมีเฟรมเวิร์กแบบโมดูลาร์มากขึ้น