自定義在列表頭部添加元素的方法,即insert_head 方法


class Mylist(list):
    def insert_head(self, n):
        # 下面這種方法是不可行的,在這個方法中insert_head(2)的結果就是[3, 4, 5]
        # L = [n]  # 開辟了新的對象空間
        # for x in self:
        #     L.append(x)
        # print(L)
        # self = L
        # print(self)  

#return self

# 因為這里返回的對象和原來myl指向的對象是不一樣的,myl.insert_head(2) 不是賦值語句,
        # 因此myl不會指向(綁定)所返回的對象([2,3,4,5]),而是指向[3,4,5]這個對象(地址)

        # 下面兩種方式是可行的,它們都是在原對象插入新的元素,然后myl綁定的對象不變
        # self[0:0] = [n]  # 用切片頭插
        self.insert(0, n)

myl = Mylist(range(3, 6))
print(myl)

myl.insert_head(2)  # [2, 3, 4, 5]
print(myl)

myl.append(6)
print(myl)

總結在變量和對象的等號賦值過程中,內存中將新開辟內存空間存儲這個對象,然后(當變量原本指向一個變量時)變量指向的是新的內存空間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM