亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python閉包函數定義與用法分析

 更新時間:2018年07月20日 10:36:38   作者:鎧甲巨人  
這篇文章主要介紹了Python閉包函數定義與用法,結合實例形式分析了Python閉包函數的功能、定義、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例分析了Python閉包函數定義與用法。分享給大家供大家參考,具體如下:

python的閉包

首先python閉包的作用,一個是自帶作用域,另一個是延遲計算。

閉包是裝飾器的基礎。

閉包的基本形式:

def 外部函數名():
  內部函數需要的變量
  def 內部函數名()
    引用外部的變量
  return 內部函數

需要注意的是:

函數的作用域關系在函數定義階段就已經固定,與調用位置無關。

無論函數在何處調用,都需要回到定義階段去找對應的作用域關系。

例子:

# -*- coding:utf-8 -*-
#! python2
def tell_info(name):
  print("%s have money %s" %(name,money))
def foo():
  money = 100
  tell_info("bill")
foo()

該代碼tell_info("bill")是在foo函數中調用,但仍然需要回到定義階段去找作用域關系,而定義的時候引用的money就是全局的Money,當全局不存在money的時候則報錯,拋出未定義錯誤。

所以該段代碼會報錯,如下所示:

Traceback (most recent call last):
  File "C:\py\jb51PyDemo\src\Demo\test.py", line 8, in <module>
    foo()
  File "C:\py\jb51PyDemo\src\Demo\test.py", line 7, in foo
    tell_info("bill")
  File "C:\py\jb51PyDemo\src\Demo\test.py", line 4, in tell_info
    print("%s have money %s" %(name,money))
NameError: global name 'money' is not defined

改成如下代碼:

# -*- coding:utf-8 -*-
#! python2
def foo():
  money = 100
  name = "bill"
  def tell_info():
    print("%s have money %s" %(name,money))
  return tell_info()
foo()

則輸出:

bill have money 100

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python函數使用技巧總結》、《Python數學運算技巧總結》、《Python數據結構與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 老生常談python之鴨子類和多態(tài)

    老生常談python之鴨子類和多態(tài)

    下面小編就為大家?guī)硪黄仙U刾ython之鴨子類和多態(tài)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python Http發(fā)送請求淺析

    Python Http發(fā)送請求淺析

    這篇文章主要介紹了Python Http發(fā)送請求淺析,文章主要通過從requests、aiohttp、httpx三個接口請求展開詳情,需要的朋友可以參考一下文章具體詳細內容
    2022-06-06
  • 人工智能學習PyTorch教程之層和塊

    人工智能學習PyTorch教程之層和塊

    這篇文章主要為大家介紹了人工智能學習Pytorch教程中的層和塊的相關知識點,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Python?DPED機器學習之實現照片美化

    Python?DPED機器學習之實現照片美化

    本篇文章主要介紹了利用Python中的DPED工具實現照片一鍵美化,可以實現照片亮度提高和色彩鮮明度提高,代碼簡潔易懂,具有一定學習價值,感興趣的小伙伴可以了解一下
    2021-11-11
  • python列表數據增加和刪除的具體實例

    python列表數據增加和刪除的具體實例

    在本篇文章里小編給大家整理的是一篇關于python列表數據增加和刪除的具體實例內容,有興趣的朋友們可以學習下。
    2021-05-05
  • python3.4 將16進制轉成字符串的實例

    python3.4 將16進制轉成字符串的實例

    今天小編就為大家分享一篇python3.4 將16進制轉成字符串的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實現Word文檔樣式批量處理

    Python實現Word文檔樣式批量處理

    這篇文章主要為大家詳細介紹了如何利用Python中的python-docx非標準庫實現word文檔樣式批量處理,文中示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05
  • 探索?Python?Restful?接口測試的奧秘

    探索?Python?Restful?接口測試的奧秘

    掌握Python?Restful?接口測試,讓你的后端服務像流水一樣順暢,本指南將帶你輕松穿梭于斷言和請求之間,搞定所有測試難題,一起來看,讓代碼在你的指尖跳舞吧!
    2023-12-12
  • 公認8個效率最高的爬蟲框架

    公認8個效率最高的爬蟲框架

    在本篇文章里小編給大家整理的是關于2020年8個效率最高的爬蟲框架知識點,需要的朋友們可以學習下。
    2020-07-07
  • Pycharm同步遠程服務器調試的方法步驟

    Pycharm同步遠程服務器調試的方法步驟

    這篇文章主要介紹了Pycharm同步遠程服務器調試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論