欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python閉包函數(shù)定義與用法分析

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

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

python的閉包

首先python閉包的作用,一個(gè)是自帶作用域,另一個(gè)是延遲計(jì)算。

閉包是裝飾器的基礎(chǔ)。

閉包的基本形式:

def 外部函數(shù)名():
  內(nèi)部函數(shù)需要的變量
  def 內(nèi)部函數(shù)名()
    引用外部的變量
  return 內(nèi)部函數(shù)

需要注意的是:

函數(shù)的作用域關(guān)系在函數(shù)定義階段就已經(jīng)固定,與調(diào)用位置無(wú)關(guān)。

無(wú)論函數(shù)在何處調(diào)用,都需要回到定義階段去找對(duì)應(yīng)的作用域關(guān)系。

例子:

# -*- 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函數(shù)中調(diào)用,但仍然需要回到定義階段去找作用域關(guān)系,而定義的時(shí)候引用的money就是全局的Money,當(dāng)全局不存在money的時(shí)候則報(bào)錯(cuò),拋出未定義錯(cuò)誤。

所以該段代碼會(huì)報(bào)錯(cuò),如下所示:

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

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

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

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

    下面小編就為大家?guī)?lái)一篇老生常談python之鴨子類和多態(tài)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Python Http發(fā)送請(qǐng)求淺析

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

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

    人工智能學(xué)習(xí)PyTorch教程之層和塊

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

    Python?DPED機(jī)器學(xué)習(xí)之實(shí)現(xiàn)照片美化

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

    python列表數(shù)據(jù)增加和刪除的具體實(shí)例

    在本篇文章里小編給大家整理的是一篇關(guān)于python列表數(shù)據(jù)增加和刪除的具體實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-05-05
  • python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例

    python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例

    今天小編就為大家分享一篇python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python實(shí)現(xiàn)Word文檔樣式批量處理

    Python實(shí)現(xiàn)Word文檔樣式批量處理

    這篇文章主要為大家詳細(xì)介紹了如何利用Python中的python-docx非標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)word文檔樣式批量處理,文中示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-05-05
  • 探索?Python?Restful?接口測(cè)試的奧秘

    探索?Python?Restful?接口測(cè)試的奧秘

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

    公認(rèn)8個(gè)效率最高的爬蟲框架

    在本篇文章里小編給大家整理的是關(guān)于2020年8個(gè)效率最高的爬蟲框架知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Pycharm同步遠(yuǎn)程服務(wù)器調(diào)試的方法步驟

    Pycharm同步遠(yuǎn)程服務(wù)器調(diào)試的方法步驟

    這篇文章主要介紹了Pycharm同步遠(yuǎn)程服務(wù)器調(diào)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論