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