課程概要:
在之前的課程中,我們學過global關鍵字。
name = 'root'
def outer():
name = "小明"
def inner():
global name
name = 123
inner()
print(name)
outer()
print(name)
其實,還有乙個nolocal關鍵字,用的比較少,此處作為了解即可。(指向上級作用域的變數)
name = 'root'
def outer():
name = "小明"
def inner():
nonlocal name
name = 123
inner()
print(name)
outer()
print(name)
name = 'root'
def outer():
name = 'alex'
def func():
name = "小明"
def inner():
nonlocal name
name = 123
inner()
print(name)
func()
print(name)
outer()
print(name)
name = 'root'
def outer():
name = 'alex'
def func():
nonlocal name
name = "小明"
def inner():
nonlocal name
name = 123
inner()
print(name)
func()
print(name)
outer()
print(name)
在生成器部分我們了解了yield關鍵字,其在python3.3之後有引入了乙個yield from。
def foo():
yield 2
yield 2
yield 2
def func():
yield 1
yield 1
yield 1
yield from foo()
yield 1
yield 1
for item in func():
print(item)
深淺拷貝一般說的都是可變資料型別:set, list, dict (不可變資料型別拷貝無意義,記憶體都不會去拷貝)深拷貝可變型別,找到所有層級的 【可變型別】或【含有可變型別的元組】 均拷貝乙份
import copy
v1 = ["小明", "root", [11, [44, 55], (11, 22), (11, , 22), 33]]
v2 = copy.deepcopy(v1)
print(id(v1)) # 140391475456384
print(id(v2)) # 140391475456640
print(id(v1[2])) # 140352552779008
print(id(v2[2])) # 140352552920448
print(id(v1[2][1])) # 140642999940480
print(id(v2[2][1])) # 140643000088832
print(id(v1[2][2])) # 140467039914560
print(id(v2[2][2])) # 140467039914560
print(id(v1[2][3])) # 140675479841152
print(id(v2[2][3])) # 140675480454784
import copy
v1 = ["小明", "root", [44, 55]]
淺拷貝,只拷貝第一層的可變資料型別。
深拷貝,拷貝所有層的可變型別,元組中如果有可變型別,也會被拷貝。
特殊的:元組, 不可變資料型別如果遇到
day16 學習總結
今天學習了可變引數和遞迴。老師還留了一道練習題,寫乙個計算器出來,嘗試琢磨了許久,還是沒有做出來。這也是我基礎薄弱的緣故,明天繼續研究。加油加油!下面是知識點 package com.liangwenwei.方法 public class 可變引數 public void test int x,in...
Day16刷題總結
意味著乙個操作在不同的類中可以有不同的實現方式。a a.多型性 b.多繼承 c.類的組合 d.類的復用 system.out.println 10 3 2 將列印?b a.1b.2 c.4d.6 下面的程式輸出的結果是 b public class a implements b inte ce b ...
實習日記 Day16
今日份新想法 今天不在公司寫實習日記啦,在回學校的路上寫 今日地鐵 思 今天中午飯後,帶著我去了公司 附近的公園遛彎兒。一路走得飛快,興致勃勃。跟他的健步比起來,我一點都沒有年輕人該有的朝氣與活力 這才上班半個月,我現在週末的狀態就完全不比往日,變得昏昏欲睡,萎靡不振。在辦公室久坐,的確是不行啊。今...