【Python】12、函數-02

文章目錄

    • 1. 返回值
    • 2.文檔字符串
    • 3. 作用域
    • 4. 命名空間

1. 返回值

返回值就是函數執行以后返回的結果,可以通過return來指定函數的返回值。返回值可以通過變量接收返回值

  • return 后可以返回任意的對象,甚至是一個函數
  • 如果僅寫一個return或者不寫return,則相當于return None
  • 函數中return后的代碼都不會執行
def fn() : return 123;res = fn()
print('res = ',res)# 結果:
res =  123***Repl Closed***

2.文檔字符串

help()是Python中的內置函數,通過help()函數可以查詢Python中的函數用法
語法:help(函數對象)


help(print)# 結果:
Help on built-in function print in module builtins:print(*args, sep=' ', end='\n', file=None, flush=False)Prints the values to a stream, or to sys.stdout by default.sepstring inserted between values, default a space.endstring appended after the last value, default a newline.filea file-like object (stream); defaults to the current sys.stdout.flushwhether to forcibly flush the stream.***Repl Closed***
  • 文檔字符串(doc str)
    在定義函數時,可以在函數內部編寫文檔字符串,文檔字符串就是函數的說明,編寫的文檔字符串可以通過help()函數進行查看

定義方法:在函數的第一行寫一個字符串就是文檔字符串,一般使用雙重引號進行跨行描述。

def fn(a,b,c) : '''這是一個求和方法,將傳入的a,b,c三個數進行求和'''return a+b+c;help(fn)# 結果:
Help on function fn in module __main__:fn(a, b, c)這是一個求和方法,將傳入的a,b,c三個數進行求和***Repl Closed***

3. 作用域

作用域(scope)指的是變量的生效區域,在Python中共有兩種作用域:

  • 全局作用域
    全局作用域在程序執行時創建,在程序執行結束時銷毀;
    所有函數以外的區域都是全局作用域;
    全局作用域中定義的變量,都屬于全局變量,全局變量可以在程序任意位置訪問到

  • 函數作用域
    函數作用域在函數調用時創建,在調用結束時銷毀;
    函數每調用一次就會產生一個新的函數作用域;
    在函數作用域中定義的變量,都是局部變量,只能在函數內部被訪問

  • 變量的查找
    當使用變量時,會優先在當前作用域中尋找該變量,如果有則使用,如果沒有則往上級作用域尋找,直到找到為止,如果最終全局作用域沒有找到則報錯


a = 123def fn() : b = 10print('a = ',a)print('b = ',b)fn()# 結果:
a =  123
b =  10***Repl Closed***

a = 123def fn() : b = 10print('a = ',a)fn()
print('b = ',b)# 結果:
a =  123
Traceback (most recent call last):File "C:\Users\Administrator\AppData\Roaming\Sublime Text\Packages\User\函數.py", line 18, in <module>print('b = ',b)^
NameError: name 'b' is not defined***Repl Closed***

在函數中為變量賦值時,默認都是為局部變量賦值,如果希望在函數內部修改全局變量,則需要使用global關鍵字來聲明變量


a = 123def fn() : a = 456print('內部a = ',a)fn()
print('外部a = ',a)# 結果:
內部a =  456
外部a =  123***Repl Closed***

a = 123def fn() : global aa = 456print('內部a = ',a)fn()
print('外部a = ',a)# 結果:
內部a =  456
外部a =  456***Repl Closed***

4. 命名空間

命名空間(namespace)指的是變量存儲的位置,每一個變量都需要存儲到指定的命名空間中。
每一個作用域都會有一個對應的命名空間。全局命名空間,用來保存全局變量,函數命名空間用來保存函數中的變量。命名空間實際上是個字典,專門用來存儲變量的字典

  • locals() 用來獲取當前作用域的命名空間
    如果在全局作用域中調用locals() 返回全局命名空間,如果在函數作用域中調用locals()則獲取函數命名空間,返回的是一個字典
a = 123scope = locals()print(type(scope))
print(a)
print(scope['a'])# 結果
<class 'dict'>
123
123***Repl Closed***
scope = locals()scope['c'] = 456 # 一般不建議這樣操作print(c)
print(scope['c'])
# 結果
456
456***Repl Closed***
  • 函數內部的命名空間
def fn() : scope = locals()print(scope)fn()# 結果:
{}***Repl Closed***
  • global() 函數可以獲取到全局的命名空間
def fn() : globals_scope = globals()print(globals_scope)fn()# 結果
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000028EC9419CD0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:\\Users\\Administrator\\AppData\\Roaming\\Sublime Text\\Packages\\User\\函數.py', '__cached__': None, 'fn': <function fn at 0x0000028EC97FF240>}***Repl Closed***

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73816.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73816.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73816.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity插件-適用于畫面傳輸的FMETP STREAM使用方法(三)基礎使用

目錄 一、插件介紹 二、組件介紹 三、Game View Streaming 1、使用 FM Network UDP 的基本設置 Server Scene Client Scene 2、使用使用 FM WebSocket 的基本設置 四、Audio Streaming 五、Microphone Streaming 一、插件介紹 ??????Unity插件-適用于畫面傳輸的…

如何為預訓練模型進行領域適配:全參數微調、LoRA 還是 Prompt Tuning?

目錄 如何為預訓練模型進行領域適配&#xff1a;全參數微調、LoRA 還是 Prompt Tuning&#xff1f; 1. 全參數微調&#xff08;Full Fine-tuning&#xff09; 適用場景 優缺點 示例代碼&#xff08;使用 Hugging Face Transformers 進行全參數微調&#xff09; 2. LoRA&am…

C++ —— 線程同步(互斥鎖)

C —— 線程同步&#xff08;互斥鎖&#xff09; 線程同步互斥鎖&#xff08;互斥量&#xff09;測試代碼mutex互斥鎖 線程同步 線程同步&#xff1a;多線程協同工作&#xff0c;協商如何使用共享資源。 C11線程同步包含三部分內容&#xff1a; 互斥鎖&#xff08;互斥量&…

UI設計中的加載動畫:優化用戶體驗的細節

hello寶子們...我們是艾斯視覺擅長ui設計和前端數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 在數字產品泛濫的今天&#xff0c;用戶對體驗的要求早已超越功能本身。一個看似簡單的加載動畫&…

SpringBoot3+Vue3實戰(Vue3快速開發登錄注冊頁面并對接后端接口)(4)

目錄 一、SpringBoot3Vue3實現基本增刪改查。前后端通信交互、配置后端跨域請求。數據批量刪除。(博客鏈接) 二、SpringBoot3Vue3快速開發登錄、注冊頁面并實現對接。 &#xff08;1&#xff09;操作數據表employee(員工信息表)。 <1>修改employee表的字段組成。 <2&g…

Python標準庫中bisect模塊的bisect_right()函數在網格交易中的應用

本文將深入探討Python標準庫中bisect模塊的bisect_right()函數在網格交易中的具體應用。 bisect模塊 bisect模塊是Python標準庫中的一個模塊&#xff0c;提供了對有序列表的插入和搜索操作的支持。它基于二分查找算法&#xff0c;可以高效地在有序列表中查找或插入元素&#x…

Excel(函數篇):IF函數、FREQUNCY函數、截取函數、文本處理函數、日期函數、常用函數詳解

目錄 IF函數等于判斷區間判斷與AND函數、OR函數一同使用IFNA函數和IFERROR函數 FREQUNCY函數、分斷統計LEFT、RIGHT、MID截取函數FIND函數、LEN函數SUBSTITUTE函數ASC函數、WIDECHAR函數實戰&#xff1a;如何獲取到表中所有工作簿名稱文本處理函數TEXT函數TEXTJOIN函數 日期函數…

生成PDF文件:從html2canvas和jsPdf渲染到Puppeteer矢量圖

剛剛實現而已&#xff1a;第一次明白&#xff0c;雙擊或file:///打開html文件&#xff0c;居然和從localhost:3000打開同一個html文件有本質的區別。 字體居然還能以Base64代碼嵌入到網頁&#xff0c;只是太大太笨。 需要安裝node.js&#xff0c;npm安裝更多依賴&#xff1a;…

Git 分支刪除操作指南(含本地與遠程)

&#x1f680; Git 分支刪除操作指南&#xff08;含本地與遠程&#xff09; 在多人協作的開發過程中&#xff0c;定期清理已合并的臨時分支&#xff08;如 feature/*、bugfix/*、hotfix/* 等&#xff09;可以保持倉庫整潔&#xff0c;避免混亂。 &#x1f4cc; 分支命名規范回…

Qt中打開windows的cmd窗口并顯示

在windows上&#xff0c;用Qt的GUI程序打開另一個程序&#xff0c;使用QProcess即可&#xff0c;并且被打開的程序通常也會顯示出來&#xff0c;但是如果想要打開dos窗口并顯示&#xff0c;并執行其中的命令或者批處理&#xff0c;則需要使用QProcess提供的windows特有的函數QP…

Modbus TCP到RTU:輕松轉換指南!

Modbus TCP 到 RTU&#xff1a;輕松轉換指南&#xff01; 在現代工業自動化領域&#xff0c;Modbus TCP和Modbus RTU兩種通信協議因其高效、穩定的特點被廣泛應用。然而&#xff0c;隨著技術的發展和設備升級的需求&#xff0c;經常會遇到需要將這兩種協議進行互相轉換的場景。…

微信小程序訂閱消息發送消息,點擊消息進入小程序頁面

1、在小程序官網訂閱消息選用或創建消息模板獲取模板ID可多個 如圖&#xff1a; 2、微信小程序前端頁面發送請求訂閱權限 請求模板id的權限可以是一個可以是多個&#xff0c;用戶同意訂閱&#xff0c;獲取code傳遞給后端——后端拿到code生成唯一的openid用于發送訂閱消息 注…

卷積神經網絡 - 卷積層

卷積神經網絡一般由卷積層、匯聚層和全連接層構成&#xff0c;本文我們來學習卷積層。 卷積層&#xff08;Convolutional Layer&#xff09;是卷積神經網絡&#xff08;CNN&#xff09;的核心組件&#xff0c;專門用于處理具有網格結構的數據&#xff08;如圖像、音頻、時間序…

Vue3全局化配置(ConfigProvider)

效果如下圖&#xff1a; 在線預覽 APIs ConfigProvider 參數說明類型默認值theme主題對象Theme{}abstractboolean是否不存在 DOM 包裹元素truetagstringConfigProvider 被渲染成的元素&#xff0c;abstract 為 true 時有效‘div’ Theme Type 名稱說明類型默認值common?全…

LabVIEW煙氣速度場實時監測

本項目針對燃煤電站煙氣流速實時監測需求&#xff0c;探討了靜電傳感器結構與速度場超分辨率重建方法&#xff0c;結合LabVIEW多板卡同步采集與實時處理技術&#xff0c;開發出一個高效的煙氣速度場實時監測系統。該系統能夠在高溫、高塵的復雜工況下穩定運行&#xff0c;提供高…

若依excel工具類導出excel模板數據帶下拉映射

導出模板代碼&#xff0c;原理是combo屬性 傳遞一個數組 里面是label下拉數組。 Overridepublic void downloadTemplate(HttpServletResponse response) {ExcelUtil<ThMachineryManageExcel> util new ExcelUtil<>(ThMachineryManageExcel.class);List<SysDist…

3.8 Spring Boot監控:Actuator+Prometheus+Grafana可視化

在Spring Boot應用中&#xff0c;通過整合Actuator、Prometheus和Grafana可以構建完整的監控體系&#xff0c;實現指標采集、存儲和可視化。以下是具體實現步驟&#xff1a; 一、Spring Boot Actuator 配置 作用&#xff1a;暴露應用健康指標、性能數據等監控端點。 1. 添加依…

啟幕數據結構算法雅航新章,穿梭C++夢幻領域的探索之旅——二叉樹序列構造探秘——堆的奧義與實現詩篇

人無完人&#xff0c;持之以恒&#xff0c;方能見真我&#xff01;&#xff01;&#xff01; 共同進步&#xff01;&#xff01; 文章目錄 一、堆的定義與結構二、堆的實現1.堆的初始化和銷毀堆的初始化堆的銷毀 2.向上調整算法和入堆向上調整算法入堆 3.向下調整算法和出堆頂數…

“Failed to Load SteamUI.dll” 錯誤詳解:全面解析與高效解決方案,助你快速修復 Steam 客戶端問題

在使用 Steam 客戶端時&#xff0c;你是否遇到過 failed to load steamui.dll 錯誤&#xff1f;這個令人頭疼的問題可能導致 Steam 無法正常啟動&#xff0c;影響游戲體驗。Failed to load steamui.dll 錯誤通常與文件損壞、系統配置或軟件沖突有關&#xff0c;但無需擔心&…

STM32 DAC詳解:從原理到實戰輸出正弦波

目錄 一、DAC基礎原理1.1 DAC的作用與特性1.2 DAC功能框圖解析 二、DAC配置步驟2.1 硬件配置2.2 初始化結構體詳解 三、DAC數據輸出與波形生成3.1 數據格式與電壓計算3.2 正弦波生成實戰3.2.1 生成正弦波數組3.2.2 配置DMA傳輸3.2.3 定時器觸發配置 四、常見問題與優化建議4.1 …