day19 繼承記憶體管理和拷貝

2021-10-25 07:43:23 字數 1863 閱讀 8212

繼承是讓子類直接擁有父類的屬性和方法的過程就是繼承

子類 - 繼承者

父類 - 被繼承者(超類)

class 子類(父類1, 父類2, 父類3…):

類的說明文件

類的內容

說明:預設情況下, 類繼承object:

class 類名: == class.類名(object):

python中的類支援多繼承

class

person

: num =

61def

__init__

(self, name=

'張三'

, age=

18, gender=

'男')

: self.name = name

self.age = age

self.gender = gender

defeat(self, food=

'饅頭'):

print

(f'吃'

) @staticmethod

deffunc1()

:print

("靜態方法"

)class

student

(person)

:pass

# 3.繼承可以讓子類直接擁有父類所有的屬性和方法

stu = student(

)print

(stu.gender)

stu.eat(

'肉包子'

)print

(stu.__dict__)

新增類屬性和方法

直接在子類中定義

新增物件屬性

需要在子類的__init__方法中通過super()去呼叫父類的__init__方法

注意:super()只能在物件方法和類方法中使用

定義變數儲存資料的時候系統會自動在記憶體中開闢空間儲存資料(空間大小根據資料大小確定)

預設情況下, 使用的資料如果之前已經儲存過, 還是會重新申請新的記憶體儲存這個資料, 但是數字和字串例外

乙個資料是否需要釋放就看這個資料引用計數是否為0(沒有引用),如果不為0(有引用)資料不會銷毀,為0(沒有引用)資料自動銷毀

拷貝

class

dog:

def__init__

(self, name=

'大黃'

, age=3)

: self.name = name

self.age = age

def__repr__

(self)

:return f''

class

person

:def

__init__

(self, name=

'小明'

, dog=

none):

self.name = name

self.dog = dog

def__repr__

(self)

:return

str(self.__dict__)

from copy import copy, deepcopy

p1 = person(dog=dog(

'dahaung'))

print

(p1)

p1.name =

'小花'

# 淺拷貝

p3 = copy(p1)

print

(p3)

p1.name =

'小紅'

p4 = deepcopy(p1)

print

(p4)

每日演算法 day 19

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.2 先將十六進製制轉化為二進位制 二進位制每四位可以表示乙個十六進製制的數字 ...

day19 學習總結

今天學習了陣列的使用和多維陣列。下面是知識點 package com.liangwenwei.陣列 public class 陣列的使用 列印全部陣列元素 for int i 0 i arrays.length i system.out.println 列印全部陣列元素 for int array ...

Day19 兩數相除

返回被除數 dividend 除以除數 divisor 得到的商。整數除法的結果應當截去 truncate 其小數部分,例如 truncate 8.345 8 以及 truncate 2.7335 2 示例1 輸入 dividend 10,divisor 3 輸出 3 解釋 10 3 truncat...