อะไรคือสิ่งที่ไม่แน่นอนและไม่เปลี่ยนแปลงใน Python?
เผยแพร่แล้ว: 2022-09-22ใน Python ตัวแปรทุกตัวมีอินสแตนซ์ของอ็อบเจกต์ใด ๆ ในสองประเภท ได้แก่ เปลี่ยนแปลงได้และไม่เปลี่ยนรูปแบบ id อ็อบเจ็กต์ที่ไม่ซ้ำกันถูกกำหนดให้กับอ็อบเจ็กต์ทุกครั้งที่สร้างอินสแตนซ์ รันไทม์กำหนดประเภทอ็อบเจ็กต์และไม่สามารถเปลี่ยนแปลงได้ในภายหลัง
อย่างไรก็ตาม สิ่งที่เปลี่ยนแปลงได้นั้นเป็นวัตถุที่ไม่แน่นอน เมื่อเราพูดว่า mutable หมายความว่าสถานะอ็อบเจ็กต์ภายในสามารถกลายพันธุ์ได้ ในขณะเดียวกัน สถานะของวัตถุที่ไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้างนั้นเป็นวัตถุที่ไม่เปลี่ยนรูป ทั้งสถานะที่เปลี่ยนแปลงได้และเปลี่ยนแปลงไม่ได้นั้นเป็นส่วนสำคัญในโครงสร้างข้อมูลของ Python
คุณลักษณะของการเปลี่ยนแปลงของวัตถุใน Python ทำให้เป็นภาษาที่พิมพ์แบบไดนามิก Mutable และ Immutable ใน Python นั้นค่อนข้างจำเป็นในฐานะแนวคิด แต่มักจะสับสนเนื่องจากลักษณะอกรรมกริยาของการไม่เปลี่ยนรูป
มาหาข้อมูลทั้งหมดเกี่ยวกับพวกเขาและความแตกต่างที่สำคัญ
ดูหลักสูตรออนไลน์ด้านวิทยาศาสตร์ข้อมูลเพื่อเพิ่มทักษะให้กับตัวคุณเอง
ทักษะด้านวิทยาศาสตร์ข้อมูลชั้นนำเพื่อเรียนรู้เพื่อเพิ่มทักษะ
เอสแอล. ไม่ | ทักษะด้านวิทยาศาสตร์ข้อมูลอันดับต้นๆ ที่ควรเรียนรู้ในปี 2022 | |
1 | หลักสูตรออนไลน์การวิเคราะห์ข้อมูล | หลักสูตรออนไลน์สถิติอนุมาน |
2 | หลักสูตรออนไลน์การทดสอบสมมติฐาน | หลักสูตรออนไลน์การถดถอยโลจิสติก |
3 | หลักสูตรการถดถอยเชิงเส้น | พีชคณิตเชิงเส้นเพื่อการวิเคราะห์ หลักสูตรออนไลน์ |
สถานะที่ไม่แน่นอนใน Python
คำว่า 'กลายพันธุ์' แปลตรงตัวว่า 'เปลี่ยนแปลงได้' หรือบางอย่างที่สามารถ 'กลายพันธุ์' ได้ มันกำหนดอ็อบเจ็กต์ที่เปิดกว้างต่อการเปลี่ยนแปลง และใน Python คำว่า 'ไม่แน่นอน' เกี่ยวข้องกับความสามารถของออบเจกต์ในการเปลี่ยนแปลงค่า ออบเจ็กต์เหล่านี้มักจะเก็บการรวบรวมข้อมูลและมีรายการประเภท ชุด พจนานุกรม และคลาสที่กำหนดโดยผู้ใช้ในตัว
สถานะคำจำกัดความที่ไม่เปลี่ยนรูปใน Python
ไม่เปลี่ยนรูปใน Python คือเมื่อคุณไม่สามารถเปลี่ยนประเภทวัตถุเมื่อเวลาผ่านไป หากไม่สามารถเปลี่ยนค่าของวัตถุใน Python ได้จะเรียกว่าวัตถุที่ไม่เปลี่ยนรูป เมื่อสร้างวัตถุที่ไม่เปลี่ยนรูปแล้ว ค่าของวัตถุนั้นจะคงอยู่ถาวรและไม่เปลี่ยนแปลง ออบเจ็กต์ประเภทบิวท์อินที่ไม่เปลี่ยนรูปคือตัวเลข สตริง ทูเพิล ชุดที่ตรึงไว้ และคลาสที่ผู้ใช้กำหนดเอง
วัตถุใน Python
ก่อนที่เราจะเจาะลึกถึงความเปลี่ยนแปลงและไม่เปลี่ยนรูปแบบใน Python ให้มาเรียนรู้กันก่อนว่าวัตถุคืออะไร ใน Python ทุกสิ่งถือเป็นอ็อบเจกต์ และแต่ละอ็อบเจ็กต์มีสามแอตทริบิวต์:
- ข้อมูลประจำตัว: หมายถึงที่อยู่ของวัตถุในหน่วยความจำของคอมพิวเตอร์
- Type : หมายถึงประเภทวัตถุที่สร้างขึ้น ตัวอย่างเช่น จำนวนเต็ม สตริง รายการ และอื่นๆ
- ค่า : หมายถึงค่าที่อ็อบเจ็กต์เก็บไว้ ตัวอย่างเช่น List=[5,6,7] จะเก็บตัวเลข 5, 6 และ 7
แม้ว่า ID และ Type ของอ็อบเจ็กต์จะไม่เปิดให้เปลี่ยนแปลงหลังจากการสร้าง ค่าก็เปิดกว้างสำหรับการเปลี่ยนแปลงสำหรับอ็อบเจ็กต์ Mutable
วัตถุที่ไม่แน่นอนใน Python
วัตถุที่ไม่แน่นอนคือวัตถุใน Python ที่สามารถกลายพันธุ์หรือเปลี่ยนแปลงได้ รหัสช่วยสอนการใช้งานวัตถุเหล่านี้ได้ดีขึ้น ดังนั้น ให้เราดูโค้ดสองสามตัวและพยายามทำความเข้าใจอ็อบเจกต์ที่ไม่แน่นอนให้ดีขึ้น:
- สำหรับทำรายการที่มีชื่อผลไม้
ผลไม้= ['มะม่วง', 'มะละกอ', 'ส้ม']
- สำหรับพิมพ์องค์ประกอบจากรายการผลไม้ หารด้วยเครื่องหมายจุลภาค & เว้นวรรค
สำหรับผลไม้ในผลไม้:
พิมพ์(ผลไม้, end=', ')
ผลลัพธ์ [1]: มะม่วง มะละกอ ส้ม
- สำหรับพิมพ์ตำแหน่งวัตถุที่สร้างขึ้นในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก
สำรวจหลักสูตรออนไลน์วิทยาศาสตร์ข้อมูลยอดนิยมของเรา
Executive Post Graduate Program in Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ | วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona |
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland | หลักสูตรออนไลน์วิทยาศาสตร์ข้อมูล |
พิมพ์(เลขฐานสิบหก(รหัส(ผลไม้)))
เอาต์พุต [2]: 0x1691d7de8c8
- เพิ่มผลไม้ใหม่ในรายการ 'ผลไม้'
fruit.append('องุ่น')
- สำหรับพิมพ์องค์ประกอบที่อยู่ในรายการ 'ผลไม้' คั่นด้วยเครื่องหมายจุลภาค & ช่องว่าง
สำหรับผลไม้ในผลไม้:
พิมพ์(ผลไม้, end=', ')
ผลผลิต [3]: มะม่วง มะละกอ ส้ม องุ่น
- สำหรับการพิมพ์ตำแหน่งวัตถุที่สร้างในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก
พิมพ์(เลขฐานสิบหก(รหัส(ผลไม้)))
เอาท์พุต [4]: 0x1691d7de8c8
ตัวอย่างแสดงให้เห็นว่า 'ผลไม้' สถานะภายในของวัตถุสามารถเปลี่ยนแปลงได้อย่างง่ายดายโดยการเพิ่มผลไม้อีกหนึ่งอย่าง 'องุ่น' เข้าไป อย่างไรก็ตาม ที่อยู่หน่วยความจำของวัตถุยังคงเหมือนเดิม พิสูจน์ว่าไม่จำเป็นต้องสร้างวัตถุใหม่ แต่วัตถุเดียวกันสามารถเปลี่ยนแปลงหรือกลายพันธุ์ได้ ตัวอย่างนี้แสดงว่าอ็อบเจ็กต์ที่มีชื่อตัวแปรอ้างอิง 'fruits' ซึ่งเป็นประเภทรายการ เปลี่ยนแปลงได้
วัตถุที่ไม่เปลี่ยนรูปใน Python
วัตถุที่ไม่เปลี่ยนรูปใน Python คือวัตถุที่ไม่สามารถเปลี่ยนค่าได้ ให้เราทำตามโค้ดง่ายๆ เพื่อทำความเข้าใจว่าอ็อบเจกต์ที่ไม่เปลี่ยนรูปคืออะไรและทำงานอย่างไร รหัสได้รับด้านล่าง:-
- สำหรับสร้างทูเพิลที่มีชื่อภาษาอังกฤษว่า months
เดือน = 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม'
- สำหรับพิมพ์องค์ประกอบของเดือนทูเพิล
พิมพ์ (เดือน)
ผลลัพธ์ [1]: ('มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม')
- สำหรับพิมพ์ตำแหน่งวัตถุซึ่งสร้างขึ้นในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก
พิมพ์(เลขฐานสิบหก(รหัส(เดือน)))
เอาท์พุต [2]: 0x1691cc35090
- สิ่งสำคัญคือต้องสังเกตว่าสิ่งอันดับจะไม่เปลี่ยนรูป ดังนั้นจึงไม่สามารถรวมองค์ประกอบใหม่เพิ่มเติมได้ ดังนั้น คุณต้องใช้การรวมของทูเพิลกับตัวดำเนินการ # + เพื่อเพิ่มเดือนจินตภาพใหม่ใน 'เดือน' ทูเปิล
เดือน += 'Pythonuary'
- สำหรับการพิมพ์องค์ประกอบของทูเพิล 'เดือน'
พิมพ์ (เดือน)
ผลลัพธ์ [3]: ('มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'Pythonuary')
- สำหรับการพิมพ์ตำแหน่งวัตถุที่สร้างในที่อยู่หน่วยความจำในรูปแบบเลขฐานสิบหก
พิมพ์(เลขฐานสิบหก(รหัส(เดือน)))
เอาท์พุต [4]: 0x1691cc8ad68
อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม | การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ | เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ |
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ | แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี | 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล |
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? | Myth Busted: Data Science ไม่ต้องการการเข้ารหัส | Business Intelligence vs Data Science: อะไรคือความแตกต่าง? |
ตัวอย่างนี้พิสูจน์ให้เห็นว่าชื่อตัวแปรสามารถใช้อ้างอิงอ็อบเจ็กต์ได้ง่าย ซึ่งเป็น tuple ชนิดหนึ่งที่ประกอบด้วยองค์ประกอบแปดตัว อย่างไรก็ตาม ID ตำแหน่งหน่วยความจำของ tuple เก่าและใหม่ไม่เหมือนกัน ดังนั้นสถานะภายใน 'เดือน' ของวัตถุจึงไม่สามารถเปลี่ยนแปลงได้ ดังนั้นโปรแกรมจัดการโปรแกรม Python ได้สร้างวัตถุใหม่ในที่อยู่หน่วยความจำ นอกจากนี้ ชื่อตัวแปร 'เดือน' ยังอ้างอิงวัตถุใหม่ที่มีองค์ประกอบเก้าอย่าง ดังนั้น การพิสูจน์ว่าทูเพิล ซึ่งเป็นอ็อบเจกต์ที่มีชื่อตัวแปรอ้างอิง 'เดือน' เป็นอ็อบเจกต์ที่ไม่เปลี่ยนรูป
บทสรุป
ออบเจ็กต์ที่ไม่แน่นอนจะใช้เป็นหลักในการอนุญาตการอัปเดตในอนาคต ในทางกลับกัน ความไม่เปลี่ยนรูปยังนำเสนอแอปพลิเคชั่นที่มีประสิทธิภาพและใช้งานได้จริงมากมายสำหรับงานที่มีความละเอียดอ่อนต่างๆ ในตำแหน่งที่เน้นเครือข่าย ทำให้สามารถประมวลผลแบบขนานได้ ออบเจ็กต์ที่ไม่เปลี่ยนรูป ปิดผนึกค่า และตรวจสอบให้แน่ใจว่าไม่มีเธรดใดเรียกใช้การเขียนทับ/อัปเดตข้อมูล เหมาะอย่างยิ่งสำหรับการเขียนรหัสถาวรที่ไม่ต้องการการเปลี่ยนแปลงในอนาคต
หากคุณเป็นโปรแกรมเมอร์มือใหม่หรือผู้คลั่งไคล้วิทยาศาสตร์ข้อมูล การเรียนรู้เกี่ยวกับวัตถุที่เปลี่ยนแปลงได้และไม่เปลี่ยนรูปใน Python จะช่วยพิสูจน์ให้คุณเลือกสาขานี้เป็นอาชีพของคุณได้ วิธีที่ดีที่สุดที่จะเรียนรู้เกี่ยวกับสิ่งเหล่านี้คือการลงทะเบียนสำหรับ Executive Post Graduate Program ใน Data Science บน upGrad
หลักสูตรนี้สร้างขึ้นภายใต้คำแนะนำของคณาจารย์ผู้เชี่ยวชาญ โดยให้ความรู้เชิงลึกเกี่ยวกับหัวข้อที่กำลังเป็นกระแสเพื่อเตรียมผู้เรียนหลายพันคนสำหรับอาชีพการงานในอนาคต
ไตรมาสที่ 1 อะไรคือความแตกต่างที่สำคัญระหว่าง mutable และ immutable ใน Python?
คำตอบ: สถานะหรือค่าของอ็อบเจ็กต์เปิดให้แก้ไขหลังจากสร้างใน mutable สถานะหรือค่าของอ็อบเจ็กต์ไม่เปิดให้แก้ไขหลังจากสร้างในอ็อบเจ็กต์ Mutable ที่ไม่เปลี่ยนรูปจะไม่ปลอดภัยต่อเธรด ออบเจ็กต์ที่ไม่เปลี่ยนรูปเป็นคลาสที่ไม่เปลี่ยนรูปแบบที่ปลอดภัยต่อเธรด ก่อนสร้างวัตถุที่ไม่เปลี่ยนรูป คุณต้องทำให้คลาสเป็นขั้นสุดท้ายก่อน
ไตรมาสที่ 2 ใน Python ประเภทข้อมูลที่เปลี่ยนแปลงและไม่เปลี่ยนแปลงคืออะไร
คำตอบ: ชนิดข้อมูลที่ไม่แน่นอนใน Python ได้แก่ list, set, dictionary และ user-defined class และชนิดข้อมูลที่ไม่เปลี่ยนรูป ได้แก่ int, decimal, float, bool, tuple, string และ range
ไตรมาสที่ 3 รายการเปลี่ยนแปลงได้ใน Python หรือไม่
คำตอบ: ใน Python รายการเป็นประเภทข้อมูลที่เปลี่ยนแปลงได้โดยมีองค์ประกอบที่แก้ไขได้ง่าย นอกจากนี้ คุณยังสามารถแทนที่แต่ละองค์ประกอบและแม้กระทั่งเปลี่ยนลำดับขององค์ประกอบหลังจากสร้างรายการ