摘要:文末評(píng)論送書,學(xué)委會(huì)用這個(gè)抽獎(jiǎng)程序來進(jìn)行嚴(yán)格抽獎(jiǎng),周六晚上點(diǎn)整定時(shí)抽獎(jiǎng)并視頻公布出來,敬請(qǐng)期待。本文講的函數(shù)值傳遞問題,是寫程序經(jīng)常遇到,特別的是動(dòng)態(tài)參數(shù)在高級(jí)框架中使用很廣泛。
正式的Python專欄第25篇,同學(xué)站住,別錯(cuò)過這個(gè)從0開始的文章!
前篇講了python中的函數(shù)和高階函數(shù),這篇再把函數(shù)的其他部分補(bǔ)充一下,稍微輕松簡(jiǎn)單一些。
文末評(píng)論送書,學(xué)委會(huì)用這個(gè)抽獎(jiǎng)程序來進(jìn)行嚴(yán)格抽獎(jiǎng),周六晚上10點(diǎn)整定時(shí)抽獎(jiǎng)并視頻公布出來,敬請(qǐng)期待。
下面是非常常見的傳遞方式,參數(shù)名寫直白,寫死了:
def show_info(name, title): print("姓名為:",name) print("職稱為:",title)
我們?cè)谑褂玫臅r(shí)候可以用以下的方式:
show_info("雷學(xué)委", "大學(xué)生Python學(xué)習(xí)社區(qū)長(zhǎng)")show_info(name="雷學(xué)委", title="持續(xù)學(xué)習(xí)協(xié)會(huì)會(huì)長(zhǎng)")
可以寫成這樣,使用兩個(gè)*,這樣非常靈活,但是缺點(diǎn)也是明顯的(結(jié)構(gòu)靈活有時(shí)候需要判斷是否漏傳,直接取容易出錯(cuò))
def show_info_v2(**kv_dict): print("姓名為:", kv_dict["name"]) print("職稱為:", kv_dict["title"])show_info_v2(name="雷學(xué)委", title="大學(xué)生Python學(xué)習(xí)社區(qū)長(zhǎng)")
下面是效果,看起來一樣的。
通常使用*加參數(shù)名。
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/24 11:39 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷學(xué)委# @XueWeiTag: CodingDemo# @File : func_call.py# @Project : hellodef show_info(name, title): print("姓名為:", name) print("職稱為:", title)show_info("雷學(xué)委", "大學(xué)生Python學(xué)習(xí)社區(qū)區(qū)長(zhǎng)")show_info(name="雷學(xué)委", title="持續(xù)學(xué)習(xí)協(xié)會(huì)會(huì)長(zhǎng)")def show_info_v2(name, title, *info): print("姓名為:", name) print("職稱為:", title) print("其他評(píng)價(jià):", info)show_info_v2("雷學(xué)委", "大學(xué)生Python學(xué)習(xí)社區(qū)區(qū)長(zhǎng)", "熱愛技術(shù)", "熱愛生活")
運(yùn)行效果如下:
我們看看下面的程序即可:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/24 11:39 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷學(xué)委# @XueWeiTag: CodingDemo# @File : func_call.py# @Project : hellodef compute_v1(list): sum = 0 for x in list: sum += x list = list + [sum] print("新地址:", id(list)) return sumdef compute_v2(list): sum = 0 for x in list: sum += x list[0] = list[0] * 100 return sum_list = [1, 2, 3, 4, 5]print("調(diào)用計(jì)算函數(shù)v1之前:", _list)print("調(diào)用計(jì)算函數(shù)v1之前內(nèi)存地址:", id(_list))print(compute_v1(_list))print("調(diào)用計(jì)算函數(shù)v1之后:", _list)print("調(diào)用計(jì)算函數(shù)v1之后內(nèi)存地址:", id(_list))_list = [1, 2, 3, 4, 5]print("調(diào)用計(jì)算函數(shù)v2之前:", _list)print("調(diào)用計(jì)算函數(shù)v2之前內(nèi)存地址:", id(_list))print(compute_v2(_list))print("調(diào)用計(jì)算函數(shù)v2之后:", _list)print("調(diào)用計(jì)算函數(shù)v2之后內(nèi)存地址:", id(_list))
這里兩個(gè)compute函數(shù),一個(gè)修改參數(shù)引用地址,一個(gè)并沒有修改參數(shù)引用而是修改了引用內(nèi)存空間的關(guān)聯(lián)地址(一個(gè)變量)的值。
可以說它們都成功了。但是外面的_list 的地址是任何時(shí)候都不會(huì)被修改的,除非賦值新地址(也就是在調(diào)用v2之前重新復(fù)制那次)
下面是運(yùn)行結(jié)果:
如果傳入不可串改的數(shù)據(jù)類型,那么盡管是基于引用關(guān)聯(lián)地址來修改值(禁止寫),比如傳入一個(gè)由基礎(chǔ)數(shù)據(jù)類型元素構(gòu)成元組tuple作為參數(shù),在調(diào)用函數(shù)中修改是被禁止。
Python運(yùn)行的時(shí)候會(huì)提示錯(cuò)誤!
《Python程序員面試筆試寶典》是一本講解Python程序員面試筆試的百科全書,在寫法上,除了講解如何解答Python程序員面試筆試問題以外,還引入了相關(guān)知識(shí)點(diǎn)輔以說明,讓讀者能夠更加容易理解。
《Python程序員面試筆試寶典》將Python程序員面試筆試過程中各類知識(shí)點(diǎn)一網(wǎng)打盡,在廣度上,通過各種渠道,搜集了近3年幾乎所有IT企業(yè)針對(duì)Python崗位的筆試、面試涉及的知識(shí)點(diǎn),包括但不限于Python基礎(chǔ)與高級(jí)知識(shí)點(diǎn)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)與算法、Python與爬蟲、Python與數(shù)據(jù)分析和機(jī)器學(xué)習(xí)相關(guān)的知識(shí)點(diǎn)。所選擇知識(shí)點(diǎn)均為企業(yè)招聘考查的知識(shí)點(diǎn)。
在講解的深度上,本書由淺入深地分析每一個(gè)知識(shí)點(diǎn),并提煉歸納,同時(shí),引入相關(guān)知識(shí)點(diǎn),并對(duì)知識(shí)點(diǎn)進(jìn)行深度剖析,讓讀者不僅能夠理解這個(gè)知識(shí)點(diǎn),還能在遇到相似問題時(shí)也能游刃有余地解決,而這些內(nèi)容是其他同類書籍所沒有的。
本書根據(jù)知識(shí)點(diǎn)進(jìn)行歸納分類,結(jié)構(gòu)合理,條理清晰,對(duì)于讀者進(jìn)行學(xué)習(xí)與檢索意義重大。
《Python程序員面試筆試寶典》是一本計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生面試、筆試的求職用書,同時(shí)也適合期望在計(jì)算機(jī)軟、硬件行業(yè)大顯身手的計(jì)算機(jī)愛好者閱讀
使用當(dāng)下新版Python版本,真題庫2020年全面更新,作者就職世界500強(qiáng)IT名企,培訓(xùn)經(jīng)驗(yàn)豐富。
Python相關(guān)領(lǐng)域面試、筆試、經(jīng)驗(yàn)心得、算法、考點(diǎn)、難點(diǎn)、真題解析一應(yīng)俱全,獲取高薪
https://item.jd.com/10040499366331.html#none
https://weidian.v.bookuu.com/detail.php?id=101489279
總體來看這本書還是挺適合面試筆試準(zhǔn)備的。
本文講的函數(shù)值傳遞問題,是寫程序經(jīng)常遇到,特別的是動(dòng)態(tài)參數(shù)在高級(jí)框架中使用很廣泛。當(dāng)然也是面試會(huì)遇到的問題之一,請(qǐng)讀者朋友們務(wù)必掌握。
另外,我們這個(gè)社區(qū)非常不錯(cuò),集齊了很多Python大咖。目前CSDN前五社區(qū),歡迎新老朋友加入交流:大學(xué)生Python學(xué)習(xí)社區(qū)
喜歡Python的朋友,別忘了關(guān)注學(xué)委的 Python基礎(chǔ)專欄 or Python入門到精通大專欄
持續(xù)學(xué)習(xí)持續(xù)開發(fā),我是雷學(xué)委!
編程很有趣,關(guān)鍵是把技術(shù)搞透徹講明白。
歡迎關(guān)注微信,點(diǎn)贊支持收藏!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/123746.html
摘要:作者主頁不吃西紅柿不吃西紅柿簡(jiǎn)介博客專家核心組成員站周榜第一粉絲專屬福利簡(jiǎn)歷模板模板知識(shí)體系面試題庫技術(shù)互助。 ? 作者主頁:不吃西紅柿? ? 簡(jiǎn)介:CSDN博客專家?、HDZ核心組成員?、C站周榜第一??? ? 粉絲專屬福利:簡(jiǎn)歷模板、PPT模板、知識(shí)體系、面試題庫、技術(shù)互助。直接去文...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型?;竟δ苁沁M(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...
摘要:章節(jié)介紹本書分為章,包括概述開始之旅初識(shí)用與后端接口進(jìn)行數(shù)據(jù)聯(lián)動(dòng)淺析的使用生命周期和鉤子函數(shù)解析組件的靈活使用下的使用前端框架實(shí)戰(zhàn)上市集團(tuán)門戶網(wǎng)站開發(fā)實(shí)戰(zhàn)基于框架的后臺(tái)管理系統(tǒng)開發(fā)。另外,本書也適合作為相關(guān)培訓(xùn)機(jī)構(gòu)的教材使用。 ...
摘要:買了多少德國(guó)先讓讓,把天臺(tái)先讓給月暴跌股民們。還不如看下月的干貨,提升技術(shù)實(shí)力是正事。枕邊算法書眾所周知,算法是軟件開發(fā)人員必須掌握的重要知識(shí)。但也不乏有人覺得算法很枯燥,所以推薦了枕邊算法書,號(hào)稱躺著都能看得懂的算法書。 6月過完了,這一年都 TM 過了一半了,大家都回想下自己這大半年,你都收獲了什么??技術(shù)有提升嗎?對(duì)象搞定了嗎? 說多了都是淚,唯有 WIFI、空調(diào)、西瓜、足球能夠...
閱讀 3601·2021-11-18 10:02
閱讀 1015·2021-09-04 16:48
閱讀 2076·2019-08-30 15:55
閱讀 3588·2019-08-30 15:52
閱讀 1871·2019-08-30 14:08
閱讀 3614·2019-08-30 13:19
閱讀 1211·2019-08-27 10:53
閱讀 3180·2019-08-26 12:11