© yu_photo/Shutterstock.com
Python’s Oops เป็นเหตุผลหลักที่บริษัทเทคโนโลยีหลายแห่งทั่วโลกต้องการให้พนักงานของตนรู้วิธีเขียนโค้ดด้วย Python การแสวงหาความรู้ของนักพัฒนาไม่มีวันสิ้นสุด และทุกๆ ปีจำเป็นต้องมีความรู้ความชำนาญมากขึ้นเพื่อรักษาความสามารถในการแข่งขัน
ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับกระบวนทัศน์การเขียนโปรแกรมที่ล้ำสมัยของ python ไม่สำคัญว่าคุณจะมีความเชี่ยวชาญในภาษาใด เนื่องจากแนวคิดการเขียนโปรแกรมเชิงวัตถุจะทำให้คุณมีความเข้าใจใหม่เกี่ยวกับโครงสร้างโค้ดและสถาปัตยกรรมซอฟต์แวร์
เราจะแสดงพื้นฐานของ Oops ใน Python และเราหวังว่านี่จะเป็นแรงบันดาลใจ คุณตลอดเส้นทางการเขียนโปรแกรมเพื่อเรียนรู้เพิ่มเติมและลองวิธีการเขียนโค้ดที่ใหม่และมีประสิทธิภาพมากขึ้น
การเขียนโปรแกรมเชิงวัตถุคืออะไร
การเขียนโปรแกรมเชิงวัตถุ (Oop) เป็นวิธีการสร้าง ใช้โดยนักพัฒนาในวงกว้างและเป็นกระบวนทัศน์ที่มีประโยชน์เมื่อทำงานกับโครงการขนาดใหญ่และซับซ้อน มันเป็นกระบวนทัศน์ปัจจุบันในโลกของการเขียนโปรแกรมและดูเหมือนว่าจะไม่เปลี่ยนแปลงในเร็ว ๆ นี้
เพื่อทำความเข้าใจเส้นทางการพัฒนานี้ ก่อนอื่นเราต้องกำหนดวัตถุ คิดว่าวัตถุเป็นหน่วยหนึ่งของระบบ ซึ่งเป็นระบบที่ทุกส่วนมีหน้าที่พื้นฐาน
ตัวอย่างเช่น คุณสามารถคิดว่าร่างกายมนุษย์เป็นระบบที่ทุกอวัยวะเป็นวัตถุ ผลลัพธ์สุดท้ายของผลรวมของวัตถุทั้งหมดคือมนุษย์ที่ใช้งานได้และมีสุขภาพดี
ในการเขียนโปรแกรมเชิงวัตถุ วัตถุทุกชิ้นต้องทำงานอย่างมีประสิทธิภาพเพื่อให้สามารถทำงานที่ต้องการร่วมกันได้ แต่ละอ็อบเจ็กต์ประกอบด้วยข้อมูลและพฤติกรรม ซึ่งเป็นพารามิเตอร์สองตัวที่กำหนดวิธีการทำงานของอ็อบเจ็กต์นั้น
คลาส
ในการเขียนโปรแกรมเชิงวัตถุ คลาสคือพิมพ์เขียวที่ใช้สร้างวัตถุ แต่ละคลาสมีแอตทริบิวต์และวิธีการใช้งาน และคุณสามารถสร้างออบเจกต์ต่างๆ มากมายด้วยคลาสเดียวกันได้ ไม่ต้องกังวลหากยังไม่เข้าท่า! เราสัญญาว่าตัวอย่างจะทำให้ง่ายขึ้น
เมื่อคุณกำหนดคลาส คุณจะสร้างโครงสร้างข้อมูลด้วย แต่ละคลาสสามารถมีเมธอดที่ไม่ซ้ำกัน ซึ่งเป็นฟังก์ชันที่ช่วยให้เรามีพฤติกรรมที่สะดวกในการใช้งานในโค้ดของเรา
เมื่อคุณกำหนดคลาสแล้ว แต่ละอ็อบเจกต์ที่สร้างขึ้นจะเป็นอินสแตนซ์พิเศษที่มีตัวแปรที่เรากำหนดไว้ใน พิมพ์เขียว. ลองคิดแบบนี้: ในโลกแห่งความเป็นจริง เรามีคลาส”มนุษย์”และแต่ละคนก็เป็นตัวอย่างของคลาสนั้นซึ่งมีตัวแปรมาจากคลาสนั้น
ทั้งหมดนี้ฟังดูดี แต่เราจะสร้างชั้นเรียนได้อย่างไร ในการเริ่มต้น ลองนึกถึงคนหลายๆ คน แต่ละคนมีคุณลักษณะหลายอย่าง เช่น ชื่อ อายุ งาน เป็นต้น ชั้นเรียนเป็นวิธีที่ดีในการจัดระเบียบแต่ละคน และคุณสามารถกำหนดคุณลักษณะได้โดยไม่จำกัด
เราสามารถสร้างคลาสได้โดยใช้คีย์เวิร์ดและแอตทริบิวต์ที่กำหนดเป็นตัวแปรด้วยการเยื้องที่เหมาะสม คุณสามารถพิมพ์แอตทริบิวต์ทั้งหมดทีละรายการหรือเป็นกลุ่ม จากนั้นใช้ข้อมูลนี้เพื่อพัฒนาเพิ่มเติม โดยพื้นฐานแล้ว เราสร้างคลาสด้วยการกำหนดแอตทริบิวต์ของคลาส จากนั้นได้รับออบเจกต์จากคลาสนั้นซึ่งมีแอตทริบิวต์เหล่านั้นอยู่แล้ว
ไวยากรณ์ของคลาส
มาดูกันว่าไวยากรณ์สำหรับสร้างคลาสทำงานอย่างไร:
โค้ดสำหรับสร้างคลาสใน Python
©”TNGD”.com
นั่นแหล่ะ , ง่ายมาก. เราเพิ่งสร้างคลาสชื่อ Person ด้วยคีย์เวิร์ด pass Pass เป็นตัวยึดตำแหน่งที่ระบุว่าโค้ดจะไปที่ใด ช่วยให้คุณเรียกใช้โค้ดได้โดยไม่มีข้อผิดพลาด
คลาสถูกกำหนดและใช้งานได้แล้ว อย่างไรก็ตาม มันยังไม่มีคุณสมบัติใดๆ ดังนั้นมาเพิ่ม:
การกำหนดคุณสมบัติของคลาส
©”TNGD”.com
เมธอด __init__ เป็นเครื่องมือพื้นฐานเมื่อเรากำหนดคุณสมบัติหรือแอตทริบิวต์ ช่วยให้คุณสร้างอินสแตนซ์คลาสใหม่ได้ นอกจากนี้ เมธอด __init__ ยังกำหนดสถานะเริ่มต้นของออบเจกต์ด้วยพารามิเตอร์ที่มีในคลาส
สำหรับเหตุผลที่เราจะไม่พูดถึงที่นี่ พารามิเตอร์แรกควรเป็นตัวแปรที่เรียกว่า self เสมอ โปรดจำไว้ว่า: การเยื้องมีความสำคัญมากเมื่อทำงานกับระบบ python และ Oop เมธอด __init__ ต้องเว้นวรรคสี่ช่อง และเนื้อความที่กำหนดตัวแปรต้องมีการเว้นวรรคแปดช่อง
ตอนนี้ เรามาสร้างความแตกต่างที่สำคัญเมื่อทำงานกับแอตทริบิวต์ แอตทริบิวต์ของคลาสคือชื่อของแอตทริบิวต์เหล่านั้นที่เหมือนกันสำหรับแต่ละคลาส และค่าของมันถูกกำหนดด้วยเมธอด __init__ ในทางกลับกัน เมื่อคุณเรียกใช้เมธอด __init__ สำหรับการสร้างออบเจกต์ใหม่ แอตทริบิวต์ที่สร้างขึ้นจะเรียกว่าแอตทริบิวต์อินสแตนซ์
ทำไม? แอตทริบิวต์เหล่านี้มีความเฉพาะเจาะจงสำหรับอินสแตนซ์เฉพาะของคลาส จากตัวอย่างของเรา สำหรับคลาส Person อ็อบเจ็กต์ทั้งหมดจะมีคุณสมบัติชื่อและอายุ แต่ค่าของพารามิเตอร์เหล่านี้อาจแตกต่างกันในแต่ละอินสแตนซ์ของ Person
ในตัวอย่างนี้ แอตทริบิวต์ของคลาสกำหนดค่าสากล (สปีชีส์) สำหรับวัตถุทั้งหมดที่สร้างด้วยคลาสนี้
สร้างแอตทริบิวต์สำหรับคลาส
©”TNGD”.com
The ไวยากรณ์สำหรับแอตทริบิวต์คลาสนั้นง่ายมาก อย่าลืมกำหนดแอตทริบิวต์ก่อนเมธอด __init__ และเว้นวรรคสี่ช่อง นอกจากนี้ อย่าลืมกำหนดค่าเริ่มต้นเสมอ
Objects
Objects เป็นหัวข้อในชีวิตประจำวันสำหรับโปรแกรมเมอร์ทุกคน สตริงเช่น”Hello, world”เป็นวัตถุ ตัวเลขหรืออาร์เรย์ยังเป็นวัตถุ
กล่าวอีกนัยหนึ่ง เอนทิตีใดๆ ที่มีสถานะและพฤติกรรมที่เกี่ยวข้องถือเป็นวัตถุ จำนวนเต็ม ตัวเลขทศนิยม และพจนานุกรมเป็นวัตถุทั่วไปเมื่อเขียนโค้ดด้วย Python
หลักการสำคัญสามประการกำหนดวัตถุ เอกลักษณ์: ชื่อเฉพาะที่ใช้เชื่อมโยงกับวัตถุและฟังก์ชันอื่นๆ ถัดไป สถานะซึ่งเป็นแอตทริบิวต์และคุณสมบัติทั้งหมดที่จัดเก็บไว้ในวัตถุ สุดท้าย พฤติกรรมซึ่งประกอบด้วยเมธอดที่ทำงานกับอ็อบเจกต์เฉพาะนั้น และวิธีที่อ็อบเจกต์ตอบสนองต่อฟังก์ชันอื่นๆ ที่มีอยู่ในโค้ดของคุณ
ตัวอย่างเช่น ออบเจกต์บุคคลจะมีเอกลักษณ์ที่กำหนดโดยอ็อบเจกต์นั้น ชื่อ. คุณลักษณะจะเป็นอายุ งานอดิเรก และงาน พฤติกรรมของบุคคลนั้นจะเป็นการกระทำใด ๆ ที่พวกเขาสามารถทำได้
ตัวอย่างโค้ด: เมธอด คลาส และอินสแตนซ์แอตทริบิวต์
ตอนนี้ มาดูตัวอย่างโค้ดกัน:
Python Oops ใช้งานในโปรแกรม
©”TNGD”.com
ในโค้ดด้านบน เราได้รวมแอตทริบิวต์ทั้งหมดและเมธอดคลาสเพื่อสร้างวัตถุที่ค่อนข้างซับซ้อน ตอนนี้ เรามีคลาส Person ที่มีคุณสมบัติและการดำเนินการบางอย่างที่เราสามารถขยายเพื่อเพิ่มสิ่งต่างๆ ให้กับโค้ดของเราได้
การสืบทอดและความหลากหลายใน Python’s Oops
เมื่อคลาสรับคุณสมบัติและเมธอดของคลาสอื่น เราเรียกกระบวนการนี้ว่า การสืบทอด คลาสที่รับค่ามาเรียกว่าคลาสลูก และแน่นอนว่าคลาสพาเรนต์คือคลาสที่รับแอตทริบิวต์ของมัน
คุณสามารถแก้ไข แทนที่ หรือลบแอตทริบิวต์ที่สืบทอดมาเมื่อทำงานกับคลาสย่อยโดยไม่กระทบต่อ ผู้ปกครอง กระบวนการนี้สามารถช่วยให้เราประหยัดเวลาได้มากและมีประโยชน์มากเมื่อเราต้องการคลาสเวอร์ชันที่แตกต่างออกไปเล็กน้อย
Polymorphism เป็นอีกหนึ่งคุณสมบัติที่มีประโยชน์เมื่อทำงานกับคลาส ช่วยให้เราสามารถนำฟังก์ชันของคลาสพาเรนต์กลับมาใช้ใหม่ในคลาสย่อยใดก็ได้ที่เราต้องการ การใช้ polymorphism เป็นวิธีที่ยอดเยี่ยมในการลดความยาวของโค้ดของเราและทำให้สามารถปรับให้เข้ากับทุกสถานการณ์ได้
ฟังก์ชันใดๆ ที่เรารับมาจากวัตถุอื่นๆ จะทำงานเหมือนกับฟังก์ชันอื่นๆ คุณเพียงแค่ต้องกำหนดพารามิเตอร์ให้ถูกต้อง ดังนั้น การรวมการสืบทอดและความหลากหลายจึงเป็นแนวทางปฏิบัติที่น่าสนใจสำหรับการปรับโค้ดของคุณให้เหมาะสม
Encapsulation ใน Python’s Oops
เรามาพูดถึงแนวคิดหลักข้อสุดท้ายที่เกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุ
การห่อหุ้มเป็นแนวคิดด้านความปลอดภัยและหลักปฏิบัติพื้นฐานสำหรับการทำงานที่ถูกต้องของระบบ Oop ใดๆ โดยพื้นฐานแล้วประกอบด้วยการจัดเรียงข้อมูลเป็นหน่วยแยกกัน เพื่อให้ข้อมูลนี้สามารถเข้าถึงได้ด้วยคีย์เวิร์ดที่ถูกต้องเท่านั้น
นี่เป็นวิธีที่สะดวกในการป้องกันการแก้ไขข้อมูลสำคัญโดยไม่ได้ตั้งใจในซอฟต์แวร์ใดๆ
ตัวอย่างเช่น คลาสเป็นหน่วยห่อหุ้ม ข้อมูลเกี่ยวกับแอตทริบิวต์ ฟังก์ชัน และเมธอดสามารถเข้าถึงได้ผ่านคลาสเท่านั้น ออบเจกต์ทำงานในลักษณะเดียวกัน: หากคุณต้องการเปลี่ยนข้อมูลภายในออบเจ็กต์ คุณต้องเรียกใช้เมธอดเฉพาะ
ข้อดีของการเขียนโปรแกรมเชิงวัตถุคืออะไร
ใน การเขียนโปรแกรมเชิงวัตถุสั้นๆ เป็นวิธีที่เหมาะในการสร้างแบบจำลองของวัตถุจริงที่มีปฏิสัมพันธ์ระหว่างกัน ซึ่งจัดระเบียบเพื่อประสิทธิภาพและการพัฒนาที่ควบคุมได้ เราได้เห็นคุณลักษณะและความเป็นไปได้บางส่วนแล้ว
ด้วย Oops เราสามารถออกแบบและทำงานกับข้อมูลที่ซับซ้อน จากนั้นใช้ข้อมูลนี้เพื่อสร้างฟังก์ชันการทำงานใดๆ ที่เราต้องการ เราสามารถกำหนดวิธีการสร้างวัตถุ วิธีการทำงาน และลักษณะการทำงานที่ได้รับ
ในขณะที่กระบวนทัศน์ทั่วไปอื่นๆ เช่น การเขียนโปรแกรมเชิงขั้นตอนจะวางโครงสร้างโปรแกรมแบบเชิงเส้น ไม่มีที่สิ้นสุด นี่คือหนึ่งในประโยชน์หลักของการทำงานกับ oops พร้อมกับความสามารถในการปรับเปลี่ยนได้อย่างมาก
อธิบายแนวคิดของ Python Oops พร้อมตัวอย่าง
สิ่งสำคัญพื้นฐานคือการเน้นวัตถุ โครงสร้างการเขียนโปรแกรมและประมวลผลข้อมูลในลักษณะที่ไม่เป็นเชิงเส้น ปรับเปลี่ยนได้ และขยายได้ สิ่งนี้เพิ่มประสิทธิภาพและทำให้ภาษาโปรแกรมที่ใช้ oop สามารถเข้าถึงได้มากขึ้น
ตอนนี้คุณรู้เกี่ยวกับเครื่องมือต่างๆ เช่น คลาสและออบเจกต์ที่จะช่วยคุณสร้างโปรแกรมที่คุณนึกออก นอกจากนี้ การเรียนรู้เกี่ยวกับแนวคิด เช่น การสืบทอดและการห่อหุ้มจะเพิ่มมูลค่าให้กับวิธีที่คุณจัดการกับโค้ดของคุณ
เครื่องมือเหล่านี้เป็นเครื่องมือระดับมืออาชีพที่มีความซับซ้อนมากขึ้นทุกๆ แนวคิดใหม่ๆ ที่คุณเรียนรู้ อย่างไรก็ตาม การเรียนรู้พื้นฐานจะช่วยให้คุณมีรากฐานที่แข็งแกร่งในการสร้างต่อไปได้เสมอ หากคุณต้องการข้อมูลเพิ่มเติม คุณควรตรวจสอบเอกสารอย่างเป็นทางการของ Python!
ตอนนี้ ได้เวลาเขียนโค้ดและลองใช้ แนวคิดทั้งหมดนี้ ขอให้โชคดี!
อธิบายแนวคิดของ Python Oops พร้อมตัวอย่าง คำถามที่พบบ่อย (คำถามที่พบบ่อย)
ฉันตั้งชื่อชั้นเรียนได้ไหม
ใช่ คุณทำได้ ชื่อใดก็ได้ที่ใช้ได้ แต่ชื่อที่ชัดเจน กระชับ และสื่อความหมายจะดีกว่าเสมอ
การสืบทอดทำงานอย่างไร
การสืบทอดช่วยให้เรานำรหัสกลับมาใช้ใหม่ได้ โดยรับคุณสมบัติและฟังก์ชันของคลาสพาเรนต์ไปยังคลาสย่อย
การเขียนโปรแกรมเชิงวัตถุคืออะไร
โดยย่อ Oop คือการเขียนโปรแกรม กระบวนทัศน์ที่ทำงานร่วมกับคุณสมบัติและพฤติกรรมที่จัดกลุ่มเป็นหน่วยเฉพาะที่เรียกว่าวัตถุ มันเสนอให้เราเห็นว่าโค้ดเป็นการผสมผสานที่ปรับขนาดได้ของวัตถุเหล่านี้
เมธอดและฟังก์ชันต่างกันอย่างไร
ในทฤษฎี Oop ไม่มีความแตกต่างใดๆ ความแตกต่างอยู่ในการทำงาน: เมธอดเป็นส่วนหนึ่งของอินสแตนซ์ของคลาส โดยพื้นฐานแล้ว คำจำกัดความของเมธอดจะอยู่ในคลาสเสมอ ถ้าไม่ใช่ เราจะเรียกมันว่าฟังก์ชัน ซึ่งสามารถนิยามในภาษาไพธอนด้วยอนุภาค “def”
oop ทำงานในลักษณะเดียวกันในทุกภาษาหรือไม่
ใช่และไม่ใช่ กระบวนทัศน์จะเหมือนกันสำหรับทุกภาษาที่ใช้ oop อย่างไรก็ตาม มีภาษาที่สร้างขึ้นจากกระบวนทัศน์อื่นซึ่งมีการใช้งานที่เฉพาะเจาะจงมาก ภาษาโปรแกรมที่ได้รับความนิยมสูงสุด เช่น Java, Javascript, Python และ C ล้วนมีแนวคิดเกี่ยวกับ oop เหล่านี้เป็นหลัก