ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้
ใน python (ไพทอน) จะทำการลบตัวแปร หรือ Object ที่ไม่ได้ใช้ให้อัตโนมัติแล้วคืนค่าหน่วยความจำให้กับระบบ โดยใช้ฟังก์ชัน __del__() (เดล) เพื่อการบริหาร Memory (เมมโมรี่) ในการสร้าง Class (คลาส) ที่มีขนาดใหญ่ซึ่งเรียกการจัดการนี้ว่า “Destructor (ดีสทรัคเตอร์)”

ตัวอย่างการใช้ del statement (เดล สเตรทเม้นท์)
del_statement.png
del_statement.png (40.84 KiB) Viewed 1717 times
ตัวอย่างการใช้ Destroy Object (ดิซทรอย ออบเจ็ค)
Destory_Object.png
Destory_Object.png (52.35 KiB) Viewed 1717 times
ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=RsFkuXB ... lzdKrpxsMM
Four
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 813
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

Re: ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย Four »

โค้ด: เลือกทั้งหมด

class test:
    def __init__(self, a=0, b=0):
        self.a = b
        self.b = a
        print("class")

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

pt1 = test()
pt2 = pt1
pt3 = pt2
print(id(pt1))
print(id(pt2))
print(id(pt3))
ผลรัน

รูปภาพ
I am slow walker, but I never walk back. (Abraham Lincoln)
ภาพประจำตัวสมาชิก
Jom07
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 514
ลงทะเบียนเมื่อ: 08/01/2018 9:56 am

Re: ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย Jom07 »

โค้ด: เลือกทั้งหมด

class ob:
    def __init__(self, m=0, n=0):
        self.n = n
        self.m = m
        print("Start class >>>>>")

    def __del__(self):
        class_name = self.__class__.__name__
        print("The",class_name,"Function is Destroyed")

pt1 = ob()
pt2 = pt1
pt3 = pt2
print(id(pt1))
print(id(pt2))
print(id(pt3))
ผลรัน

รูปภาพ

ศึกษาข้อมูลจาก :https://www.youtube.com/watch?v=RsFkuXB ... M&index=44
รูปภาพ
rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

Re: ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย rangsan »

การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โค้ด: เลือกทั้งหมด

class Mindpoint:
    def __init__(self, x=0, o=0):
        self.x = o
        self.o = x
        print("Starting class :)")

    def __del__(self):
        class_name = self.__class__.__name__
        print("This  "+class_name+" Function is Deleting")

pt1 = Mindpoint()
pt2 = pt1
pt3 = pt2
print(id(pt1))
print(id(pt2))
print(id(pt3))
ผลการรัน
output_del_function.png
output_del_function.png (10.35 KiB) Viewed 1548 times
ศึกษาจาก : https://www.youtube.com/watch?v=RsFkuXB ... lzdKrpxsMM
It’s never too late to start again.
prakon
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 561
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

Re: ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย prakon »

เป็นคำสั่งที่ไว้ใช้ลบ คลาส ออกโดยจะคืนค่าสู่ เมมโมรี่

โค้ด: เลือกทั้งหมด

#การลบค่าตัวแปร แบบ ทั่วๆไป
var_dic={"A":"A","B":"B","C":"C"}
print(var_dic)
del (var_dic["A"])
print(var_dic)
#การลบ class
class MindpPoint:
    def __init__(self, x=0 ,y=0):
        self.x = x
        self.y = y
        print("Start using class >>")
    def __del__(self):
        class_name = self.__class__.__name__
        print("The",class_name,"function is Destroyed!!")
pt1 = MindpPoint() #นำความสามรถของ classมาเก็บไว้ในตัวแปร
pt2 = pt1
pt3=pt2
print(id(pt1)) #ที่อยู่บนเมมโมรี่ของ pt1
print(id(pt2))  #ที่อยู่บนเมมโมรี่ของ pt2
print(id(pt3))  #ที่อยู่บนเมมโมรี่ของ pt3
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25602
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: ทำความรู้จักกับภาษา python (44) : การจัดการกับ Object (ออบเจ็ค) ที่ไม่ได้ใช้

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

โค้ด: เลือกทั้งหมด

class delete:
    def __init__(self, b=0, k=0):
        self.b = b
        self.k = k
        print("class")

    def __del__(self):
        class_name = self.__class__.__name__
        print("the",class_name,"Function is Destroyed!!")

pt1 = delete()
pt2 = pt1
pt3 = pt2
print(id(pt1))
print(id(pt2))
print(id(pt3))
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (8.79 KiB) Viewed 1005 times
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 85