ในวิดีโอที่แล้ว เราได้เรียนรู้ว่า Opie คือสิ่งที่เราเรียกว่ากระบวนทัศน์ ซึ่งเป็นวิธีคิดเกี่ยวกับโค้ดและจัดโครงสร้างโค้ดของเรา
และฉันจะลิงก์ไปยังบทความที่ยอดเยี่ยมนี้จาก Wikipedia เกี่ยวกับประวัติของภาษาโปรแกรม
คุณเห็นไหม เราเริ่มต้นด้วยภาษาโปรแกรมพื้นฐาน
เรามีสิ่งต่างๆ เช่น ภาษาแอสเซมบลีที่มีระดับต่ำมาก ใกล้เคียงกับรหัสเครื่อง
เรามีสิ่งต่างๆ เช่น ภาษาโคบอล และค่อยๆ เมื่อเราเริ่มเขียนโค้ดมากขึ้นเรื่อยๆ ในช่วงอายุหกสิบเศษและอายุเจ็ดสิบ
เราเริ่มสร้างกระบวนทัศน์พื้นฐานเหล่านี้
และหนึ่งในกระบวนทัศน์ใหญ่ที่เกิดขึ้น โดยเฉพาะอย่างยิ่งกับภาษาโปรแกรมสมอลทอล์ค
คือแนวคิดของการเขียนโปรแกรมเชิงวัตถุหรือภาษาเชิงวัตถุ
คุณเห็นไหม จนถึงจุดนั้น เราเขียนสิ่งที่เราเรียกว่ารหัสขั้นตอน
หมายความว่าถ้าเราดูไฟล์ Python โค้ดขั้นตอนก็เหมือนกับขั้นตอน
เรามีบรรทัดเดียวผ่าน สมมติว่า 100 และเราเพิ่งไปจากบนสุดของบรรทัดไปด้านล่างสุดของบรรทัด
เรามีเงื่อนไข บางทีก็วนซ้ำ แต่ทุกอย่างทำอย่างนี้ ทำอย่างนั้น
เรากำลังบอกเครื่องว่า เฮ้ ทำอย่างนี้เลย
ฉันจะบอกคุณด้วยการแนะนำกระบวนทัศน์เชิงวัตถุ
นี้มีการเปลี่ยนแปลงเล็กน้อย
เราเริ่มพูดว่า เฮ้ มาลองจำลองบางสิ่งในโค้ดของเราที่แสดงถึงวัตถุในโลกแห่งความจริงกัน
ตัวอย่างเช่น ถ้าฉันกำลังจะเขียนโค้ดรถ ฉันจะสร้างวัตถุของรถที่มีข้อมูลว่าสีอะไร มีเครื่องยนต์ประเภทไหน
มีกี่ที่นั่ง แต่ก็มีการกระทำเช่นวิธีที่เราทำได้ บนนั้นเช่นรถสามารถไปข้างหน้าสามารถถอยหลังก็สามารถเปิดประตูได้
และแทนที่จะมีรหัสขั้นตอนเหล่านี้ เราสามารถคิดในแง่ของแบบจำลอง พิมพ์เขียวในโลกแห่งความเป็นจริง
เพราะในขณะที่มนุษย์เราจัดระเบียบสิ่งต่างๆ
คิดถึงห้อง.
นึกถึงโรงงานด้วยการจัดระเบียบสิ่งของและมีกลุ่มต่าง ๆ ในสถานที่เฉพาะ ทำงานร่วมกัน
นั่นเป็นวิธีที่ดีกว่าในการคิดและดำเนินการสิ่งต่างๆ
แล้วสิ่งนี้จะมีลักษณะอย่างไรใน Python
Python เป็นภาษาเชิงวัตถุหรืออาจเป็นได้ ซึ่งหมายความว่ามันสามารถรองรับแนวคิดแบบเปิดได้
แนวคิดของอ็อบเจกต์และโมเดลนี้ และเราเคยเห็นสิ่งนี้เมื่อเราใช้ type เราเห็นว่าทุกอย่างเป็นอ็อบเจกต์
เพราะเราใช้คีย์เวิร์ดคลาสนี้
แต่คำหลักคลาสนี้ใน Python คืออะไร?
ฉันสามารถสร้างข้อมูลของตัวเอง พิมพ์ชั้นเรียนของฉันเองได้เพียงแค่พูดคำว่า class แล้วหลังจากนั้นฉันก็สามารถตั้งชื่ออะไรก็ได้ตามต้องการ
เอาเป็นว่าชั้น
ใหญ่.
วัตถุ.
ตอนนี้ทันที
คุณเห็นที่นี่ว่าแบบแผนการตั้งชื่อแตกต่างจากที่เราเคยเห็นมาก่อน
เราจะทำให้แน่ใจว่าเป็นตัวพิมพ์ใหญ่ ซึ่งเป็นมาตรฐาน
เราต้องการให้โปรแกรมเมอร์รู้ว่านี่เป็นคลาสและเราไม่ได้ใช้เคสงู
เราใช้สิ่งที่เราเรียกว่า camel case ซึ่งเป็นคำใหม่ทุกคำที่เป็นตัวพิมพ์ใหญ่
แล้วตรงนี้เราใช้โคลอน และในนี้เราเขียนโค้ดของเรา
ตอนนี้ฉันจะไม่เขียนโค้ดแล้ว
ฉันแค่กำลังจะผ่านไป
แต่ตรงนั้น ฉันเพิ่งสร้างคลาสใหม่ขึ้นมา ตัวอย่างเช่น ถ้าฉันสร้าง
พิมพ์.
Big Object และฉันคลิก Run
ฉันยังรู้สึกไม่สบายใจ เพราะตอนนี้สิ่งที่เราสร้างคือคลาสนี้ ซึ่งเป็นพิมพ์เขียว แต่จริงๆ
แล้วเราไม่ได้สร้างวัตถุขึ้นมา
ฉันรู้ว่าถ้อยคำอาจทำให้สับสน แต่อดทนกับฉัน
ฉันจะอธิบายเรื่องนี้
ตอนนี้เราสามารถสร้าง สมมติว่า วัตถุหนึ่งเท่ากับวัตถุขนาดใหญ่ แล้วเรียกใช้คลาสนี้
เพื่อว่าถ้าฉันพิมพ์ object ที่นี่ Object one และฉันคลิก run
ฉันได้รับชั้นเรียน
วัตถุขนาดใหญ่
คุณสามารถข้ามหัวข้อหลักได้ที่นี่ในตอนนี้ เพราะเราจะพูดถึงมันในภายหลัง
แต่คุณจะเห็นว่าฉันเพิ่งสร้างวัตถุของฉันเอง
ทีนี้ ลองคิดดูว่าเกิดอะไรขึ้นที่นี่ เพราะมันมีอะไรให้เข้าใจมากมาย
คุณเห็นการเขียนโปรแกรมเชิงวัตถุ มีแนวคิดเกี่ยวกับคลาสและวัตถุ
ตอนนี้คลาสคือสิ่งนี้
มันคือพิมพ์เขียว
พิมพ์เขียวของสิ่งที่เราต้องการสร้าง
อะไรคือคุณสมบัติพื้นฐานที่เป็นคุณสมบัติที่คลาสของเรามี?
วิธีการหรือการกระทำพื้นฐานใดบ้างที่ชั้นเรียนของเราสามารถทำได้
จากพิมพ์เขียวนี้ ฉันสามารถสร้างวัตถุต่างๆ ได้ครั้งแล้วครั้งเล่า โดยใช้สิ่งนี้เป็นส่วนประกอบหลัก
พิมพ์เขียวนี้จึงเป็นสิ่งที่เราเรียกว่าคลาส
ซึ่งเรากำหนดด้วยคีย์เวิร์ดของคลาส และคลาสนี้สามารถสร้างอินสแตนซ์ได้
นั่นคือการกระทำของการสร้างอินสแตนซ์ที่แตกต่างกัน
และกรณีเหล่านี้คืออะไร?
เหล่านี้เป็นวัตถุทั้งหมด
ตอนนี้การตั้งชื่อที่นี่เป็นสิ่งที่คุณจะต้องทำความคุ้นเคย
และภาษาโปรแกรมเชิงวัตถุทั้งหมดมีภาษานี้
ดังนั้นคุณจะต้องเข้าใจสิ่งที่ใครบางคนพูด
เฮ้ ฉันเพิ่งยกตัวอย่างคลาส
หมายความว่า เฮ้ ฉันเพิ่งสร้างอินสแตนซ์ใหม่ วัตถุใหม่
เมื่อดูไดอะแกรมนี้ ให้กลับไปที่โค้ดที่เราเพิ่งเขียน
เราได้สร้างชั้นเรียนหรือพิมพ์เขียวที่นี่
จากนั้นวงเล็บคู่นี้สร้างอินสแตนซ์ของคลาสและพูดว่า เฮ้ คลาส ใช้อะไรก็ตามที่คุณมีโค้ดในนี้
และสร้างอินสแตนซ์และสร้างอ็อบเจกต์ใหม่
ดังนั้นเราจึงสร้างวัตถุใหม่โดยการสร้างอินสแตนซ์ของคลาสนี้
และนี่คือสิ่งที่เราทำกับรายการใช่ไหม
ฉันสามารถสร้างหลายรายการซ้ำแล้วซ้ำอีก
และทุกครั้งที่ฉันสร้างรายการ ฉันสามารถเข้าถึงเมธอดเหล่านี้ทั้งหมด และบางครั้งแม้แต่แอตทริบิวต์ที่ฉันสามารถใช้ได้
และวิธีนี้ช่วยประหยัดเวลาได้มากแทนที่จะต้องเขียนโค้ดด้วยตัวเอง
และในทำนองเดียวกัน ฉันก็สามารถสร้างวัตถุหลายชิ้นได้ที่นี่
วัตถุประสงค์.
วัตถุที่สาม
เป็นแบบนั้น.
และตอนนี้ฉันมีวัตถุที่แตกต่างกันสามอย่างที่ฉันสามารถใช้ได้ตามพิมพ์เขียวนี้
ตอนนี้ พิมพ์เขียวตอนนี้ไม่มีอะไรเลย เพราะฉันสามารถเพิ่มโค้ดที่นี่ในภายหลัง และเราจะทำในวิดีโอหน้า
แต่ความสวยงามอยู่ที่ประสิทธิภาพที่นี่
คุณเห็นพิมพ์เขียวเอง
ชั้นเรียนจะถูกเก็บไว้ในหน่วยความจำ
ล่าม Python จะบอกว่า เฮ้ วัตถุขนาดใหญ่จะเป็นพิมพ์เขียวสำหรับสิ่งนี้
ดังนั้นฉันจะเก็บรหัสทั้งหมดนั้นไว้ในหน่วยความจำ
แต่ทุกครั้งที่ฉันสร้างวัตถุ ฉันไม่ต้องเขียนโค้ดใหม่หรือทำอะไรแบบนั้น
ฉันสามารถพูดได้เพียงว่า เฮ้ ไปที่หน่วยความจำว่าวัตถุขนาดใหญ่อยู่ที่ไหน และเพียงแค่เรียกใช้โค้ดนั้น เพื่อที่เราจะได้ทำให้โค้ดของเราแห้งอีกครั้ง
เรามีที่เดียวที่ช่วยให้เราสามารถยกตัวอย่างโค้ดของเราลงในวัตถุได้
มาพักและขยายคลาสนี้ในวิดีโอหน้ากัน