หน้าแรก
หน้าแรก
Python จะลบวัตถุที่ไม่ต้องการ (ประเภทในตัวหรืออินสแตนซ์ของคลาส) โดยอัตโนมัติเพื่อเพิ่มพื้นที่หน่วยความจำ กระบวนการที่ Python ปล่อยว่างและเรียกคืนบล็อกของหน่วยความจำที่ไม่ได้ใช้แล้วเป็นระยะๆ เรียกว่า Garbage Collection ตัวรวบรวมขยะของ Python ทำงานระหว่างการทำงานของโปรแกรมและถูกทริกเกอร์เมื่อจำนวนการ
การสืบทอดในชั้นเรียน แทนที่จะกำหนดคลาสใหม่ เราสามารถสร้างคลาสโดยสร้างคลาสจากคลาสที่มีอยู่ก่อนโดยระบุคลาสพาเรนต์ในวงเล็บหลังชื่อคลาสใหม่ คลาสลูกสืบทอดแอตทริบิวต์ของคลาสพาเรนต์ และเราสามารถใช้แอตทริบิวต์เหล่านั้นได้เสมือนว่าถูกกำหนดไว้ในคลาสย่อย คลาสย่อยยังสามารถแทนที่สมาชิกข้อมูลและวิธีการจากพาเรนต
เราสามารถหาคลาสจากคลาสพาเรนต์หลายคลาสได้ดังนี้ - คลาส A:# กำหนดคลาส A ของคุณ .....คลาส B:# กำหนดคลาส B ของคุณ .....คลาส C(A, B):# คลาสย่อยของ A และ B ..... เราสามารถใช้ฟังก์ชัน issubclass() เพื่อตรวจสอบความสัมพันธ์ของสองคลาสและอินสแตนซ์ได้ ตัวอย่างเช่น issubclass(sub, sup) ฟังก์ชันบูลีนคืน
เราสามารถหาคลาสจากคลาสพาเรนต์หลายคลาสได้ดังนี้ - คลาส A:# กำหนดคลาส A ของคุณ .....คลาส B:# กำหนดคลาส B ของคุณ .....คลาส C(A, B):# คลาสย่อยของ A และ B ..... เราสามารถใช้ฟังก์ชัน isinstance() เพื่อตรวจสอบความสัมพันธ์ของสองคลาสและอินสแตนซ์ isinstance(obj, Class) ฟังก์ชันบูลีนคืนค่า จริง หาก ob
เรามีคลาส A และ B ที่กำหนดไว้ดังนี้ - class A(object): pass class B(A): pass B สามารถพิสูจน์ได้ว่าเป็น sub class ของ A ได้ 2 วิธี ดังนี้ class A(object):pass class B(A):pass print issubclass(B, A) # Here we use the issubclass() method to check if B is subclass of A print B.__bases__ # Here we check
เรามีคลาส A และ B ที่กำหนดไว้ดังนี้ - class A(object): pass class B(A): pass ตัวอย่าง A สามารถพิสูจน์ได้ว่าเป็น super class ของ B ได้ 2 วิธีดังนี้ class A(object):pass class B(A):pass print issubclass(B, A) # Here we use the issubclass() method to check if B is subclass of A print B.__bases__ # Her
โค้ดด้านล่างแสดงให้เห็นว่าแอตทริบิวต์ foo ถูกกำหนดหรือได้รับในคลาส A และ B หรือไม่ ตัวอย่าง class A: foo = 1 class B(A): pass print A.__dict__ #We see that the attribute foo is there in __dict__ of class A. So foo is defined in class A. print hasattr(A, 'foo') #We
การเขียนโปรแกรมเชิงวัตถุสร้างรูปแบบโค้ดที่ใช้ซ้ำได้ เพื่อป้องกันความซ้ำซ้อนของโค้ดในโครงการ วิธีหนึ่งที่สร้างรหัสที่รีไซเคิลได้คือผ่านการสืบทอด เมื่อคลาสย่อยหนึ่งใช้ประโยชน์จากรหัสจากคลาสฐานอื่น การสืบทอดคือเมื่อคลาสใช้รหัสที่เขียนภายในคลาสอื่น คลาสที่เรียกว่าคลาสย่อยหรือคลาสย่อยสืบทอดเมธอดและตัวแ
เราใช้ super ซึ่งเป็นฟังก์ชัน Python ในตัว ซึ่งเป็นวิธีการเรียกคลาสพาเรนต์ที่ดีกว่าเล็กน้อยสำหรับการเริ่มต้น โค้ดต่อไปนี้แสดงการใช้ super ตัวอย่าง # Initializing using just Parent class MySubClass(MySuperClass): def __init__(self): MySuperClass.__init__(self
วิธีการโอเวอร์โหลดหมายถึงมีสองวิธีที่มีชื่อเดียวกัน เราไม่สามารถมี 2 วิธีที่มีชื่อเดียวกันใน Python และเราไม่จำเป็นต้องมี ใน Python ไม่สามารถโอเวอร์โหลดเมธอดได้ หากคุณต้องการเข้าถึงฟังก์ชันเดียวกันโดยใช้คุณสมบัติต่างกัน ให้ใช้วิธีแทนที่วิธีการจะดีกว่า
การแทนที่เป็นคุณสมบัติของคลาสเพื่อเปลี่ยนการใช้งานเมธอดที่จัดเตรียมโดยคลาสพื้นฐานตัวใดตัวหนึ่ง การเอาชนะเป็นส่วนสำคัญของ OOP เนื่องจากทำให้การสืบทอดใช้อำนาจอย่างเต็มที่ โดยการใช้วิธีการแทนที่คลาสอาจ คัดลอก คลาสอื่น หลีกเลี่ยงโค้ดที่ซ้ำกัน และในขณะเดียวกันก็ปรับปรุงหรือปรับแต่งส่วนหนึ่งของคลาสนั้น ก
__init__ __init__ เป็นวิธีการสำรองในคลาสหลาม เป็นที่รู้จักในฐานะคอนสตรัคเตอร์ในแนวคิด OOP เมธอดนี้เรียกว่าเมื่อมีการสร้างอ็อบเจ็กต์จากคลาสและอนุญาตให้คลาสเริ่มต้นแอ็ตทริบิวต์ของคลาสได้ เราจะใช้ __init__ ได้อย่างไร ? ลองพิจารณาว่าเรากำลังสร้างคลาสชื่อ Car รถยนต์สามารถมีคุณลักษณะต่างๆ เช่น สี รุ่น ค
เมธอด __del__() เรียกอีกอย่างว่าเมธอด destructor มันถูกเรียกเมื่อวัตถุถูกรวบรวมขยะซึ่งเกิดขึ้นหลังจากการอ้างอิงถึงวัตถุทั้งหมดถูกลบไปแล้ว ในกรณีง่ายๆ อาจเป็นทันทีหลังจากที่คุณลบตัวแปร เช่น del x หรือถ้า x เป็นตัวแปรภายใน หลังจากที่ฟังก์ชันสิ้นสุดลง โดยเฉพาะอย่างยิ่ง ยกเว้นว่ามีการอ้างอิงแบบวงกลม CP
เอกสาร Python อย่างเป็นทางการระบุว่า __repr__() ใช้เพื่อคำนวณการแสดงสตริง อย่างเป็นทางการ ของอ็อบเจ็กต์ ฟังก์ชันในตัว repr() ใช้ __repr__() เพื่อแสดงวัตถุ __repr__() ส่งคืนการแสดงแทนวัตถุที่พิมพ์ได้ หนึ่งในวิธีที่เป็นไปได้ในการสร้างวัตถุนี้ __repr__() มีประโยชน์มากกว่าสำหรับนักพัฒนา ในขณะที่ __str__
วิธีการ __str__ __str__ เป็นวิธีการพิเศษ เช่น __init__ ที่ส่งคืนการแสดงสตริงที่ ไม่เป็นทางการ ของอ็อบเจ็กต์ มีประโยชน์ในการดีบัก พิจารณาโค้ดต่อไปนี้ซึ่งใช้เมธอด __str__ class Time: def __str__(self): return '%.2d:%.2d:%.2d' % (self.hour, self.minute
ฟังก์ชัน cmp() ฟังก์ชัน cmp(x,y) จะเปรียบเทียบค่าของสองอาร์กิวเมนต์ x และ y - cmp(x, y) ค่าที่ส่งคืนคือ − จำนวนลบถ้า x น้อยกว่า y ศูนย์ถ้า x เท่ากับ y จำนวนบวกถ้า x มากกว่า y โดยทั่วไปแล้วฟังก์ชัน cmp() ในตัวจะส่งกลับเฉพาะค่า -1, 0 หรือ 1 อย่างไรก็ตาม มีที่อื่นๆ ที่คาดหวังฟังก์ชันที่มีลำดับการ
เอกสาร Python อย่างเป็นทางการระบุว่า __repr__ ถูกใช้เพื่อค้นหาการแสดงสตริง เป็นทางการ ของอ็อบเจกต์ และ __str__ ถูกใช้เพื่อค้นหาการแสดงสตริงที่ ไม่เป็นทางการ ของอ็อบเจ็กต์ คำสั่งพิมพ์และฟังก์ชันในตัว str() ใช้ __str__ เพื่อแสดงการแทนค่าสตริงของวัตถุในขณะที่ฟังก์ชันในตัว repr() ใช้ __repr__ เพื่อแสดงว
คลาส Python มีคุณสมบัติมาตรฐานทั้งหมดของกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุ:กลไกการสืบทอดคลาสช่วยให้คลาสฐานหลายคลาส คลาสที่ได้รับสามารถแทนที่เมธอดใดๆ ของคลาสพื้นฐานหรือคลาส และเมธอดสามารถเรียกเมธอดของคลาสฐานที่มีชื่อเดียวกันได้
เราทราบดีว่าเราสามารถใช้ + โอเปอเรเตอร์ในการเพิ่มตัวเลขและในขณะเดียวกันก็เชื่อมสตริงเข้าด้วยกัน สิ่งนี้เป็นไปได้เนื่องจากตัวดำเนินการ + โอเวอร์โหลดโดยทั้งคลาส int และคลาส str โอเปอเรเตอร์นั้นเป็นเมธอดที่กำหนดไว้ในคลาสที่เกี่ยวข้อง การกำหนดวิธีการสำหรับตัวดำเนินการเรียกว่าตัวดำเนินการโอเวอร์โหลด สำหร
ตามเอกสารของ Python การซ่อนข้อมูล เป็นการแยกไคลเอ็นต์ออกจาก (ส่วนหนึ่งของ) การนำไปใช้ บางอ็อบเจ็กต์ของโมดูลสามารถอยู่ภายในโมดูลและมองไม่เห็นและไม่สามารถเข้าถึงได้สำหรับผู้ใช้ ด้วยเหตุนี้ จึงเป็นวิธีการหลีกเลี่ยงการพึ่งพาและให้การรักษาความปลอดภัยในเวลาเดียวกัน ผู้ใช้แอปพลิเคชันสามารถทราบวิธีใช้แอปพลิ