ภาพโดยผู้เขียน
Python เป็นภาษามหัศจรรย์ที่มีแนวคิดมากมายที่แม้แต่ผู้ใช้ขั้นสูงก็อาจไม่คุ้นเคย Dunder หรือ Magical method ก็เป็นหนึ่งในนั้น เมธอดเมธอดเป็นเมธอดพิเศษที่ล้อมรอบด้วยขีดล่างคู่ พวกเขาไม่ได้เรียกอย่างชัดเจนซึ่งแตกต่างจากวิธีการทั่วไปในไพ ธ อน วิธีการวิเศษอย่างหนึ่งคือ __getitem__
เมธอด ทำให้ออบเจกต์ Python ทำงานเหมือนลำดับหรือคอนเทนเนอร์ เช่น รายการ พจนานุกรม และทูเพิล ใช้ดัชนีหรือสไลซ์และดึงค่าที่เกี่ยวข้องจากคอลเลกชัน มันถูกเรียกใช้โดยอัตโนมัติเมื่อใดก็ตามที่เราใช้ indexer [ ]
ตัวดำเนินการเพื่อเข้าถึงองค์ประกอบภายในวัตถุของคุณ
คิดว่าวิธีนี้เป็นไม้กายสิทธิ์ที่ให้พลังแก่คุณในการดึงข้อมูลที่จำเป็นเพียงแค่เขียนโค้ดไม่กี่บรรทัด น่าสนใจใช่มั้ย? วิธีนี้ยังใช้กันอย่างแพร่หลายในการวิเคราะห์ข้อมูลและการเรียนรู้ของเครื่อง ดังนั้นเรามาเจาะลึกลงไปใน __getitem__
วิธีการและค้นพบพลังและความยืดหยุ่นของมัน
ฉันต้องการให้คุณเข้าใจว่าหน้าที่ของคุณในฐานะโปรแกรมเมอร์ Python เป็นมากกว่าการเขียนโค้ดการทำงาน รหัสของคุณควรมีประสิทธิภาพ อ่านได้ และบำรุงรักษาได้ โดยใช้ __getitem__
จะช่วยให้คุณบรรลุเป้าหมายเหล่านี้ ต่อไปนี้เป็นประโยชน์อื่นๆ ของการใช้วิธีมายากลนี้:
- ลดการใช้หน่วยความจำโดยให้คุณแยกเฉพาะข้อมูลที่จำเป็นแทนการโหลดโครงสร้างข้อมูลทั้งหมดลงในหน่วยความจำ
- ให้ความยืดหยุ่นมากขึ้นในการจัดการและจัดการข้อมูล
- ให้คุณวนซ้ำคอลเลคชันโดยไม่ต้องวนซ้ำข้อมูล
- ปรับปรุงฟังก์ชันการทำงานโดยอนุญาตให้คุณเขียนการจัดทำดัชนีขั้นสูงที่อาจไม่สามารถทำได้ด้วยประเภทที่มีอยู่แล้วภายใน
- ลดความซับซ้อนของรหัสเนื่องจากใช้สัญกรณ์ที่คุ้นเคย
ไวยากรณ์สำหรับ __getitem__
วิธีการมีดังนี้:
def __getitem__(self, index): # Your Implementation pass
กำหนดพฤติกรรมของฟังก์ชันและรับดัชนีที่คุณพยายามเข้าถึงในพารามิเตอร์ เราสามารถใช้วิธีนี้ได้ดังนี้
my_obj[index]
สิ่งนี้แปลเป็นคำสั่ง my_obj.__getitem__(index)
ภายใต้ประทุน ตอนนี้คุณอาจคิดว่ามันแตกต่างจากในตัวอย่างไร indexer []
โอเปอเรเตอร์? ทุกที่ที่คุณใช้สัญลักษณ์นี้ python จะเรียกโดยอัตโนมัติ __getitem__
วิธีการสำหรับคุณและเป็นชวเลขสำหรับการเข้าถึงองค์ประกอบ แต่ถ้าคุณต้องการเปลี่ยนลักษณะการทำงานของการจัดทำดัชนีสำหรับออบเจกต์แบบกำหนดเอง คุณต้องเรียกใช้อย่างชัดเจน __getitem__
วิธี
ตัวอย่างที่ 01
เรามาเริ่มด้วยตัวอย่างง่ายๆ ก่อน เราจะสร้างชั้นเรียนของนักเรียนซึ่งจะมีรายชื่อนักเรียนทั้งหมดและเราสามารถเข้าถึงได้โดยใช้ดัชนีและพิจารณาว่าดัชนีแสดงถึงรหัสนักเรียนเฉพาะของพวกเขา
class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])
Output:
ตอนนี้เราจะไปยังตัวอย่างขั้นสูงที่เราจะเปลี่ยนพฤติกรรมการจัดทำดัชนีโดยใช้ __getitem__
วิธี. สมมติว่าฉันมีรายการองค์ประกอบสตริงและฉันต้องการดึงข้อมูลองค์ประกอบเมื่อใดก็ตามที่ฉันป้อนตำแหน่งดัชนี และฉันยังสามารถรับตำแหน่งดัชนีได้หากฉันป้อนสตริงเอง
class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green'])
Output:
red
green
0 2
วิธีนี้มีประโยชน์อย่างยิ่งสำหรับการค้นหาแอตทริบิวต์ของอินสแตนซ์อย่างรวดเร็ว เมื่อพิจารณาถึงความยืดหยุ่นและความอเนกประสงค์ของวิธีนี้แล้ว ฉันจะบอกว่านี่เป็นหนึ่งในวิธีการทางเวทมนตร์ของ Python ที่ไม่ค่อยได้ใช้มากที่สุด ฉันหวังว่าคุณจะสนุกกับการอ่านบทความนี้และแจ้งให้เราทราบในส่วนความคิดเห็นหากคุณสนใจที่จะรู้เกี่ยวกับวิธีการวิเศษอื่นๆ ใน Python
คันวัล เมเรน เป็นนักพัฒนาซอฟต์แวร์ที่มีความทะเยอทะยานและมีความสนใจอย่างมากในด้านวิทยาศาสตร์ข้อมูลและการประยุกต์ใช้ AI ในทางการแพทย์ Kanwal ได้รับเลือกให้เป็น Google Generation Scholar 2022 สำหรับภูมิภาค APAC Kanwal ชอบแบ่งปันความรู้ด้านเทคนิคโดยการเขียนบทความเกี่ยวกับหัวข้อที่กำลังมาแรง และมีความกระตือรือร้นเกี่ยวกับการปรับปรุงการเป็นตัวแทนของผู้หญิงในอุตสาหกรรมเทคโนโลยี
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าถึงได้ที่นี่.
- ที่มา: https://www.kdnuggets.com/2023/03/introduction-getitem-magic-method-python.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-__getitem__-a-magic-method-in-python
- :เป็น
- 2022
- 8
- a
- เกี่ยวกับเรา
- เข้า
- การเข้าถึง
- บรรลุ
- สูง
- AI
- AI ในการแพทย์
- ทั้งหมด
- การอนุญาต
- การวิเคราะห์
- และ
- ในภูมิภาคเอเชียแปซิฟิก
- การใช้งาน
- เป็น
- อาร์กิวเมนต์
- บทความ
- บทความ
- AS
- ที่ต้องการ
- ที่เกี่ยวข้อง
- แอตทริบิวต์
- อัตโนมัติ
- BE
- ประโยชน์ที่ได้รับ
- Black
- สีน้ำเงิน
- built-in
- by
- โทรศัพท์
- ที่เรียกว่า
- โทร
- CAN
- เปลี่ยนแปลง
- ชั้น
- รหัส
- ชุด
- ความเห็น
- สมบูรณ์
- แนวความคิด
- พิจารณา
- พิจารณา
- ภาชนะบรรจุ
- สร้าง
- ประเพณี
- ข้อมูล
- การวิเคราะห์ข้อมูล
- วิทยาศาสตร์ข้อมูล
- เดวิด
- ลึก
- กำหนด
- ผู้พัฒนา
- ต่าง
- ค้นพบ
- สอง
- e
- ง่าย
- ที่มีประสิทธิภาพ
- ธาตุ
- องค์ประกอบ
- การเปิดใช้งาน
- เข้าสู่
- จำเป็น
- แม้
- ตัวอย่าง
- สารสกัด
- อย่างยิ่ง
- คุ้นเคย
- สองสาม
- ชื่อจริง
- ความยืดหยุ่น
- ดังต่อไปนี้
- สำหรับ
- ราคาเริ่มต้นที่
- ฟังก์ชัน
- การทำงาน
- ฟังก์ชั่น
- รุ่น
- ได้รับ
- เป้าหมาย
- ทุน
- มากขึ้น
- สีเขียว
- การจัดการ
- มี
- ช่วย
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- กระโปรงหน้ารถ
- ความหวัง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTTPS
- i
- ID
- การดำเนินงาน
- การปรับปรุง
- in
- ดัชนี
- อุตสาหกรรม
- ข้อมูล
- ตัวอย่าง
- แทน
- อยากเรียนรู้
- สนใจ
- น่าสนใจ
- บทนำ
- IT
- รายการ
- ITS
- ตัวเอง
- KD นักเก็ต
- กระตือรือร้น
- กุญแจ
- ทราบ
- ความรู้
- ภาษา
- การเรียนรู้
- กดไลก์
- เส้น
- รายการ
- รายการ
- โหลด
- ค้นหา
- เครื่อง
- เรียนรู้เครื่อง
- มายากล
- บำรุงรักษาได้
- จัดการ
- หลาย
- ยา
- หน่วยความจำ
- วิธี
- วิธีการ
- อาจ
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ย้าย
- ชื่อ
- จำเป็นต้อง
- วัตถุ
- วัตถุ
- of
- on
- ONE
- ผู้ประกอบการ
- สามัญ
- อื่นๆ
- พารามิเตอร์
- หลงใหล
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- ตำแหน่ง
- เป็นไปได้
- อำนาจ
- โปรแกรมเมอร์
- หลาม
- รวดเร็ว
- ยก
- การอ่าน
- สีแดง
- ภูมิภาค
- การแสดง
- แสดงให้เห็นถึง
- จำเป็นต้องใช้
- กลับ
- s
- วิทยาศาสตร์
- Section
- เลือก
- ตนเอง
- Share
- ชวเลข
- น่า
- ชิ้น
- So
- ซอฟต์แวร์
- บาง
- พิเศษ
- เริ่มต้น
- คำแถลง
- โครงสร้าง
- นักเรียน
- นักเรียน
- อย่างเช่น
- ล้อมรอบ
- วากยสัมพันธ์
- ใช้เวลา
- เทคโนโลยี
- อุตสาหกรรมเทคโนโลยี
- วิชาการ
- ที่
- พื้นที่
- ของพวกเขา
- พวกเขา
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- คิด
- ไปยัง
- หัวข้อ
- แนวโน้ม
- ชนิด
- ภายใต้
- เข้าใจ
- เป็นเอกลักษณ์
- us
- การใช้
- ใช้
- ผู้ใช้
- ความคุ้มค่า
- ไม้เรียว
- อย่างกว้างขวาง
- จะ
- กับ
- ภายใน
- ไม่มี
- ผู้หญิง
- ผู้หญิงในเทคโนโลยี
- จะ
- เขียน
- การเขียน
- ของคุณ
- ลมทะเล