การเขียนโปรแกรมเชิงวัตถุช่วยให้เราสร้างวัตถุที่มีวิธีการของตัวเอง เช่น การรัน
และคุณสมบัติ
คุณสมบัติ.
เป็นวิธีที่ยอดเยี่ยมในการเพิ่มฟังก์ชันการทำงานให้กับภาษาและเลียนแบบโลกแห่งความเป็นจริง
ตัวอย่างเช่น เราใช้แนวคิดในการทำงานให้กับบริษัทเกม
แม้ว่า Python จะให้ข้อมูลเพียงไม่กี่ประเภท แต่ฉันสามารถสร้างตัวละครของผู้เล่นได้และตอนนี้เจ้านายของฉันก็มีความสุขเพราะตัวละครผู้เล่นนี้สามารถใช้ได้ทั่วทั้งเกมและผู้เขียนโค้ดอื่น
ๆ ทั้งหมดต้องทำคือเรียกใช้บรรทัดนี้ด้วยชื่อที่กำหนดเอง และอายุของตัวละคร
ดังนั้น OP จึงช่วยให้เราเขียนโค้ดที่ทำซ้ำได้ จัดระเบียบได้ดี และหน่วยความจำมีประสิทธิภาพด้วย
ใช่ไหม
เพราะเราเขียนเพียงครั้งเดียว
ดังนั้น หากคุณต้องการเป็นนักพัฒนาที่ยอดเยี่ยม OP คือสิ่งที่คุณจำเป็นต้องรู้และคุณจำเป็นต้องเข้าใจ
เพราะนี่คือวิธีที่คุณต้องการจัดระเบียบโค้ดของคุณ
คิดขั้นตอนน้อยลงและคิดมากขึ้นในแง่ของการทำงาน
การจัดกลุ่มข้อมูลเช่นแอตทริบิวต์ร่วมกับวิธีการสร้างคลาสที่สามารถเลียนแบบบางสิ่งจากโลกแห่งความเป็นจริงได้
ตอนนี้ฉันต้องการแสดงเครื่องมือที่มีประโยชน์ให้คุณดูที่นี่
เราเห็นแล้วว่าเมื่อทำเครื่องเล่นดอท
ตัวแก้ไขของฉันแสดงให้ฉันเห็นว่าฉันมีคุณสมบัติอะไรบ้างรวมถึงกล่องสีม่วงซึ่งเป็นวิธีการที่ฉันมีอยู่
และทันทีที่คุณเห็นว่าฉันมีชื่อและเรียกใช้ แต่แล้วฉันก็มีชื่ออื่น ๆ ทั้งหมดที่ฉันได้รับโดยค่าเริ่มต้น
ต่อไปนี้คือวิธีดันเดอร์หรือเวทมนตร์ทั้งหมดที่เราจะพูดถึงกัน
แต่ประเด็นสำคัญที่นี่คือ ถ้าฉันทำอะไรบางอย่าง เช่น help ซึ่งเป็นฟังก์ชั่นใหม่ที่คุณอาจไม่เคยเห็นมาก่อน
และขอแสดงความคิดเห็นในเรื่องนี้
ถ้าฉันคลิกเรียกใช้
ฉันหายดีแล้ว แบบพิมพ์เขียวทั้งหมดของวัตถุ
ถ้าฉันทำอะไรเหมือนรายการ
และฉันคลิกเรียกใช้
มันแสดงให้เห็นพิมพ์เขียวที่มีอีกครั้ง
และนี่เป็นวิธีที่ดีในการดูว่าพิมพ์เขียวของคลาสประเภทข้อมูล Python ใดมีอะไรบ้าง
นี่คือสิ่งที่เราจะทบทวนในภายหลัง
แต่ฉันต้องการกลับไปที่ตัวละครของผู้เล่นคนนี้
ในที่นี้ เราเห็นว่าเราสามารถสร้างคุณลักษณะได้
และแอตทริบิวต์เป็นส่วนของข้อมูลที่เป็นไดนามิก
นั่นคือ เมื่อเรายกตัวอย่างวัตถุ พวกมันจะมีลักษณะเฉพาะกับวัตถุนั้น ๆ เช่นชื่อและอายุ
และเราต้องใช้คีย์เวิร์ดตัวเองนี้เพื่อให้แน่ใจว่าเป็นไดนามิก
อย่างไรก็ตาม มีอีกสิ่งหนึ่งที่เรียกว่าแอตทริบิวต์ class object และอาจมีลักษณะเช่นนี้
สมมติว่าเรามีตัวละครของผู้เล่นและพวกเขาต้องเป็นสมาชิกที่จ่ายเงิน
ในการเล่นเกมนี้ คุณต้องเคยเล่นหรือต้องสมัครสมาชิกก่อน
เลยมีสมาชิกเท่าๆกัน
จริง.
คุณลักษณะ.
ไม่เหมือนวิธีนี้ คุณจะเห็นว่ามันอยู่ในแนวเดียวกันกับวิธีการของเรา
และสิ่งนี้เรียกว่าอ็อบเจ็กต์คลาส
คุณลักษณะ.
ในแอตทริบิวต์ class object ซึ่งแตกต่างจากแอตทริบิวต์ class ปกติเหล่านี้ ต่างกันเพราะ มันไม่ใช่ไดนามิก
มันเป็นสแตติก
ดังนั้นหากผมคลิก
เรียกใช้ที่นี่และเราต้องการให้แน่ใจว่าเราพิมพ์อะไรบางอย่าง
ลองพิมพ์เครื่องเล่นไปที่
และฉันคลิกเรียกใช้
ในขณะที่ฉันได้รับเครื่องเล่นนั่นก็เยี่ยมมาก
แต่ถ้าผมทำดอทเมมเบอร์
และฉันคลิกเรียกใช้
ดูนั่นสิ
ฉันจะได้เท่ากับสองถ้าฉันทำผู้เล่นคนหนึ่งที่นี่
เช่นกัน.
และฉันคลิกเรียกใช้
ฉันเอาจริงเอาจังอีกแล้ว
ดังนั้นผู้เล่นทุกคนจึงตั้งค่าสมาชิกเป็น true
แต่นี่ไม่ใช่ไดนามิก
เป็นแอตทริบิวต์ class object ซึ่งหมายความว่าเป็นแอตทริบิวต์จริงในคลาสนี้
และนี่คือสิ่งที่เราใช้เมื่อไม่มีการเปลี่ยนแปลง
สิ่งนี้จะเป็นจริงและมีอยู่จริงสำหรับออบเจ็กต์ทั้งหมด ดังนั้นคุณจึงไม่สามารถแก้ไขได้จริงๆ
เป็นเพียงวัตถุทั้งหมดที่เราสร้างอินสแตนซ์จะสามารถเข้าถึงได้
ดังนั้นสิ่งนี้จะไม่เปลี่ยนแปลงในทุกกรณี
และเราสามารถใช้สิ่งนี้ได้ที่นี่เช่นกันหรือที่ใดก็ได้ในพิมพ์เขียวคลาสนี้
ตามความเป็นจริง ตัวอย่างเช่น สมมติว่าเราต้องการตรวจสอบว่า
การเป็นสมาชิกมีอยู่ ดังนั้นเราจึงตรวจสอบว่าการเป็นสมาชิกเป็นจริงหรือไม่
ซึ่งฉันหมายความว่ามันเป็นเสมอ
นี่จึงค่อนข้างซ้ำซ้อนเล็กน้อย แต่ที่นี่
ฉันสามารถพูดได้ก็ต่อเมื่อการเป็นสมาชิกเป็นจริง
จากนั้นฉันจะกำหนดชื่อและอายุ
แต่เพื่อให้เราเข้าถึงการเป็นสมาชิกได้ ฉันจะต้องเป็นสมาชิก self dot เพราะจำไว้ว่า ตัวเองหมายถึงตัวละครของผู้เล่นนี้
ดังนั้นถ้าฉันเรียกใช้สิ่งนี้
ทุกอย่างยังคงทำงาน
และถ้าฉันทำเครื่องเล่นหนึ่งชื่อดอท
นี้ยังคงทำงาน
หรือฉันสามารถอ้างถึงสิ่งนี้โดยตัวละครของผู้เล่นจริง
ดังนั้นสมาชิกตัวละครของผู้เล่น
ดังนั้นถ้าฉันคลิกเรียกใช้ที่นี่
สิ่งนี้ใช้ได้เช่นกันเพราะเป็นแอตทริบิวต์ของคลาสอ็อบเจ็กต์
ถ้าฉัน.
สถานที่ที่จะ?
บางทีในการวิ่ง
มาเปลี่ยนสิ่งนี้กันเถอะ
ที่จะตะโกนและ
และตะโกน
มันอยากจะวิ่ง
มาลบบรรทัดนี้กัน
กำลังจะพิมพ์ครับ
สตริง F ที่ระบุว่า My name is
และตั้งชื่อให้มัน
คุณคิดว่าสิ่งนี้จะได้ผลหรือไม่?
มาลองดูกัน
เอาเป็นว่าตะโกน
และตรวจสอบให้แน่ใจว่าเราใช้วิธีการนั้นแล้วคลิกตะโกนอีกครั้ง
ถ้าฉันคลิกเรียกใช้
ฉันได้รับชื่อแอร์ไม่ได้กำหนดไว้ในบรรทัดที่ 11
ถ้าฉันไปที่บรรทัดที่ 11 ที่นี่ ไม่ได้กำหนดชื่อไว้
ทำไมถึงเป็นอย่างนั้น?
เพราะเราไม่ได้ใช้ตัวเอง
ลองทำชื่อจุดเอง
และถ้าผมกดรัน
ไปเลย
ฉันชื่อทอม
ฉันชื่อซินดี้
ตกลง.
สุดยอด.
และฉันสามารถใช้ self ได้เพราะฉันส่งมันเข้าไปที่นี่เป็นพารามิเตอร์แรกและทุกวิธีได้รับพารามิเตอร์แรกเป็น
self เพื่อให้เราสามารถใช้งานได้
แต่ฉันสามารถทำชื่อตัวละครของผู้เล่นได้หรือไม่ถ้าฉันคลิกเรียกใช้
ฉันได้รับละครอากาศ ตัวละครไม่มีชื่อแอตทริบิวต์
เดี๋ยวนะ ทำไมเหรอ?
เนื่องจากชื่อไม่ใช่แอตทริบิวต์ของคลาสอ็อบเจ็กต์
ไม่ใช่คุณสมบัติหรือคุณลักษณะของตัวละครของผู้เล่น
ไม่ มันถูกกำหนดไว้ในฟังก์ชันคอนสตรัคเตอร์ของเรา ฟังก์ชัน init ของเรา
นั่นเป็นบิตของที่นี่และสิ่งที่คุณต้องทำความคุ้นเคย
แอตทริบิวต์ class object คือสิ่งที่ไม่เปลี่ยนแปลงในอินสแตนซ์ที่แตกต่างกันเมื่อเทียบกับแอตทริบิวต์
หรือแอตทริบิวต์ class เป็นสิ่งที่เป็นไดนามิกและเฉพาะเจาะจงสำหรับแต่ละ class object
วิธีที่เราเข้าถึงพวกเขานั้นแตกต่างกันโดยที่เราสามารถเข้าถึงการเป็นสมาชิกเช่นนี้ได้จริง
แต่เพื่อให้เราเข้าถึงชื่อหรืออายุในชั้นเรียนได้ เราต้องใช้ชื่อตัวเอง
นั่นคือเหตุผลที่ทุกครั้งที่เราสร้างเมธอดในคลาส แม้ว่าฉันจะสร้างเมธอดใหม่ตรงนี้
และสมมุติว่าอันใหม่นี้กำลังจะถูกรัน
อีกครั้งฉันต้องใช้ตัวเองเป็นพารามิเตอร์แล้วอย่างอื่นที่ฉันต้องการเพิ่ม
และที่นี่.
เป็นพารามิเตอร์ที่สองดังนั้นเมื่อฉันคลิก สมมุติว่าเรียกใช้
ผ่านเข้าม.
สวัสดี
เถียงกันแบบนี้.
ฉันรู้ว่านี่เป็นหลายอย่าง แต่หวังว่าคุณจะเริ่มทำตามกฎของชั้นเรียน
เมื่อคุณจำกฎเหล่านี้ได้แล้ว มันก็จะง่ายขึ้นเรื่อยๆ
แต่เราจะฝึกฝนให้มากกว่านี้อีกเล็กน้อยในวิดีโอหน้า