day16-內(nèi)存管理和拷貝

python的類支持多繼承(讓一個類同時繼承多個類);多繼承的時候挡闰,子類只能繼承第一個父類所有的屬性和方法乒融,后面的父類只有字段
和方法能被繼承

class Animal:
    num = 100

    def __init__(self):
        self.age = 0
        self.gender = 'male'

    @classmethod
    def func1(cls):
        print('動物類的類方法')


class Fly:
        name = '飛行'
        def __init__(self):
            self.height = 100
            self.time = 3
            self.speed = 80

        def func2(self):
            print('飛行的對象方法')


class Bird(Animal, Fly):
    pass


b = Bird()
print(Bird.num, Bird.name)
# print(Bird.age, Bird.time)
Bird.func1()
print(b.age, b.gender)
# print(b.height)

python中所有的類型都是類,所以所有的數(shù)據(jù)都是對象
python中使用任意的運算符都是在調(diào)用相應(yīng)類中的對應(yīng)的方法摄悯,每一個運算符對應(yīng)的什么方法是固定的
某種數(shù)據(jù)是否支持某個運算符操作就看這個數(shù)據(jù)類型中是否實現(xiàn)了對應(yīng)的方法

1赞季、運算符重載指的是在不同的類中實現(xiàn)同樣的函數(shù)的運算符對應(yīng)的函數(shù)

類的對象默認(rèn)情況下只支持==, !=
class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    # a+b --> a.__add__(b)
    # self --> 當(dāng)前類的對象,也是+前面的那個數(shù)據(jù)
    # other --> +后面的那個數(shù)據(jù)奢驯,類型根據(jù)運算規(guī)則的設(shè)計可以是任何類型的數(shù)據(jù)
    def __repr__(self):
        return f'<{str(self.__dict__)[1:-1]}>'
    def __add__(self, other):
        # return self.age + other.age
        return Student(self.name + other.name, self.age + other.age, self.score + other.score)
    # 注意:<,>符號只需要重載其中一個就可以
    def __lt__(self, other):
        return self.score < other.score
stu1 = Student('小明', 22, 77)
stu2 = Student('小紅', 19, 88)
print(stu1 + stu2)
print(stu1 < stu2)

淺拷貝和深拷貝

1申钩、直接賦值
將變量中的地址直接賦給新的變量,賦值后兩個變量的地址相同
2瘪阁、拷貝
不管是淺拷貝還是深拷貝都會對原數(shù)據(jù)進(jìn)行賦值產(chǎn)生新的地址
3撒遣、淺拷貝
字符串、列表和元組的切片管跺;對象.copy()义黎;copy模塊中的copy方法都是淺拷貝
淺拷貝指當(dāng)前對象,不會對子對象進(jìn)行拷貝
4豁跑、深拷貝
copy模塊中的deepcopy方法是深拷貝

# 練習(xí)
from copy import copy, deepcopy
a = ['color', 'height', 'background']
b = [a, 'aaa', 'bbb']
c1 = b
c2 = copy(b)
c3 = deepcopy(b)
a[-1] = ['BG']
b.append('ccc')
# 問題:print(c1), print(c3), print(c3)
print(c1)
print(c2)
print(c3)
from enum import Enum

枚舉的特點:

1廉涕、可以通過有意義的屬性名直接顯示數(shù)據(jù)
2、每個數(shù)據(jù)的值不能修改
3艇拍、有時候可以做到不同數(shù)據(jù)的值是唯一的

內(nèi)存的開辟

內(nèi)存區(qū)間分為棧區(qū)間和堆區(qū)間狐蜕;棧區(qū)間的內(nèi)存自動開辟和自動釋放,堆區(qū)間的內(nèi)存需要程序員手動開辟和釋放卸夕;
但是python已經(jīng)將堆區(qū)間內(nèi)存的開辟和釋放自動化

當(dāng)每次給變量賦值的時候层释,系統(tǒng)先在堆區(qū)間中開辟空間將數(shù)據(jù)存起來,然后再將數(shù)據(jù)在堆中的地址存到變量中娇哆,變量存在堆區(qū)間

數(shù)字和字符串?dāng)?shù)據(jù)在開辟空間的時候,會先檢查內(nèi)存中之前是否已經(jīng)有這個數(shù)據(jù),如果有直接使用之前的數(shù)據(jù)碍讨,沒有才開辟新的空間保存數(shù)據(jù)

內(nèi)存的釋放

棧區(qū)間:全局棧區(qū)間在程序結(jié)束后銷毀治力,函數(shù)棧區(qū)間在函數(shù)調(diào)用結(jié)束后銷毀(自動)
堆區(qū)間:看一個對象是否銷毀,就看這個對象的引用計數(shù)是否為0勃黍,如果一個對象的引用為0宵统,這個對象就銷毀(垃圾回收機制)
注意:python中針對對象的循環(huán)引用已經(jīng)做了處理,程序員不需要寫額外的代碼來解決循環(huán)引起的問題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末覆获,一起剝皮案震驚了整個濱河市马澈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弄息,老刑警劉巖痊班,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摹量,居然都是意外死亡涤伐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門缨称,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凝果,“玉大人,你說我怎么就攤上這事睦尽∑骶唬” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵当凡,是天一觀的道長山害。 經(jīng)常有香客問我,道長宁玫,這世上最難降的妖魔是什么粗恢? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮欧瘪,結(jié)果婚禮上眷射,老公的妹妹穿的比我還像新娘。我一直安慰自己佛掖,他們只是感情好妖碉,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芥被,像睡著了一般欧宜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拴魄,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天冗茸,我揣著相機與錄音席镀,去河邊找鬼。 笑死夏漱,一個胖子當(dāng)著我的面吹牛豪诲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挂绰,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼屎篱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了葵蒂?” 一聲冷哼從身側(cè)響起交播,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎践付,沒想到半個月后秦士,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡荔仁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年伍宦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乏梁。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡次洼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遇骑,到底是詐尸還是另有隱情卖毁,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布落萎,位于F島的核電站亥啦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏练链。R本人自食惡果不足惜翔脱,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒鼓。 院中可真熱鬧届吁,春花似錦、人聲如沸绿鸣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮模。三九已至亮蛔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間擎厢,已是汗流浹背究流。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工辣吃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芬探。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓齿尽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灯节。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容