วันจันทร์ที่ 27 กุมภาพันธ์ พ.ศ. 2560

9.7 การลบอ็อบเจกต์ python

9.7 การลบอ็อบเจกต์

การลบอ็อบเจกต์
                การลบอ็อบเจกต์เพื่อให้หน่วยความจำได้ปลดปล่อยทรัพยากรให้โปรแกรมได้ใช้ให้เกิดประโยชน์สูงสุด เพื่อความรวดเร็วในการประมวลผลอ็อบเจกต์อื่น ๆ การลบอ็อบเจกต์จะใช้กับอ็อบเจกต์ที่ไม่ต้องการใช้ ซึ่งภาษาไพธอนจะจัดการด้วยตนเองได้ โดยวิธีการที่เรียกว่า garbage collection  เมื่อมีการประมวลผลคำสั่งจะมีการเข้าไปตรวจสอบอ็อบเจกต์นั้น ๆ และเพิ่มค่าให้กับอ็อบเจกต์ที่เรียกใช้ครั้งละ 1 และอ็อบเจกต์ใดที่ไม่ถูกเรียกใช้งานจะถูกลบไปครั้งละ 1 เช่นกัน เมื่อตรวจสอบว่าอ็อบเจกต์ใดไม่ถูกใช้งานจนครบกำหนดที่ 0 แล้ว โปรแกรมจะลบอ็อบเจกต์นั้นออกจากหน่วยความจำโดยอัตโนมัติทันที ในกรณีที่ต้องการลบอ็อบเจกต์ด้วยตนเอง จะใช้เมท็อดพิเศษ คือ __del__() หรือที่เรียกอีกอย่างว่า destructor แล้วเรียกใช้คำสั่ง del<ชื่ออ็อบเจกต์>  ดังตัวอย่างในภาพที่ 9.9

source code

class Point:
    def __init__(self, x = 0, y = 0):
        self.x = x
        self.y = y
        print 'x, y = ',self.x, self.y

    def __del__(self):
        class_name = self.__class__.__name__
        print class_name, "destroyed"

point1 = Point(3,5)
point2 = Point(10,25)
point3 = Point(12,32)
print 'point1 id =', id(point1),\
      'point1 id =', id(point2),\
      'point3 id =', id(point3)

del point1
del point2
del point3
ภาพที่ 9.9  แสดงคำสั่งการลบอ็อบเจกต์

ผลลัพธ์ของโปรแกรมดังแสดงในภาพที่ 9.10

 x, y =  3 5x, y =  10 25
x, y =  12 32
point1 id = 33245784 point1 id = 33247024 point3 id = 33287264
Point destroyed
Point destroyed
Point destroyed
ภาพที่ 9.10  แสดงผลลัพธ์การลบอ็อบเจกต์

จากภาพที่ 9.10 เป็นการแสดงผลค่า x, y ที่ตำแหน่งจุดต่าง ๆ เพราะเป็นการประกาศสร้าง อ็อบเจกต์ point1, point2 และ point3 ด้วยอาร์กิวเมนต์ที่แตกต่างกัน การเรียกใช้คลาสจะไม่เรียกคอนสตรักเตอร์ที่รับค่าและกำหนดค่าพร้อมทั้งสั่งให้แสดงผลค่า x, y ดังนั้นจึงแสดงค่าดังกล่าวออกมาทางจอภาพ ในขณะเดียวกันยังสั่งให้แสดง id ของแต่ละคลาสที่โปรแกรมหลัก หลังจากนั้นมีการใช้คำสั่งลบอ็อบเจกต์ทั้ง 3 คำสั่งนี้จะไปเรียกเมท็อด __del__() ซึ่งหน้าที่หลักคือลบอ็อบเจกต์พร้อมทั้งแสดงผลข้อความว่าถูกลบออกไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...