[轉]nonlocal和global
在Python中,當引用一個變量的時候,對這個變量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、內置作用域(builtins模塊)的順序來進行的,即所謂的LEGB規則。
然而當在一個函數內部為一個變量賦值時,並不是按照上面所說LEGB規則來首先找到變量,之後為該變量賦值。在Python中,在函數中為一個變量賦值時,有下面這樣一條規則:
當在函數中給一個變量名賦值是(而不是在一個表達式中對其進行引用),Python總是創建或改變本地作用域的變量名,除非它已經在那個函數中被聲明為全局變量.
global的使用場景
x = 99
def func()
global x
x = 88
func()
print(x) #輸出88
nonlocal的使用場景
def func():
count = 1
def foo():
nonlocal count
count = 12
foo()
print(count)
func() #輸出12
[轉]nonlocal和global
相關推薦
[轉]nonlocal和global
foo 聲明 並不是 AS IV lock leg pre local 在Python中,當引用一個變量的時候,對這個變量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、內置作用域(buil
函式的巢狀+nonlocal和global關鍵字(重點)
1.在函式中宣告函式 在內部函式中使用變數的時候, 查詢順序: 先找自己 -> 上一層 -> 上一層..全域性 -> 內建 # 函式的互相呼叫 # def func1(): # print("我是神器的func1") # # def func2(): # func1(
Python中關鍵字nonlocal和global的用法及區別
一、Python3中global與nonlocal 用法 nonlocal 首先,要明確 nonlocal 關鍵字是定義在閉包裡面的(不定義在閉包裡會拋異常SyntaxError: nonlocal declaration not allowed at mod
(轉)過濾器和攔截器的區別
null req acc 編程 字符集 work uri indexof send 1、攔截器是基於java的反射機制的,而過濾器是基於函數回調 2、過濾器依賴與servlet容器,而攔截器不依賴與servlet容器 3、攔截器只能對action請求起作用,而過濾器則可以對
轉 Docker和hadoop
cut 集群管理 pac 什麽是 資源調度 環境 公司 大數據 meta 2017-06-21 朱潔 Docker很熱,怎麽形容?感覺開源除了spark技術,就是docker了,甚至把Go語言也帶火了,把Go在TIOBE的排名從百名外帶入主流語言的行列。 Docker
JavaSE--[轉]加密和簽名的區別
href table net 發出 ref fix csdn art 內容 轉載:http://blog.csdn.net/u012467492/article/details/52034835 私鑰用來簽名的,公鑰用來驗簽的。公鑰加密私鑰解密是秘送,私鑰加密公鑰解密是簽名
[轉] equals和==的區別小結
strong www. archive object 復制 什麽 borde off add ==: == 比較的是變量(棧)內存中存放的對象的(堆)內存地址,用來判斷兩個對象的地址是否相同,即是否是指相同一個對象。比較的是真正意義上的指針操作。 1、比較的是操作符兩端
px轉vw和vh的工具(對前端同學有用)
tle family 需要 html 轉換 技術分享 asp github windows7 CSS3中有兩個新尺寸單位vw和vh, 這兩個單位非常適合於開發移動端自適應頁面。 假如說有一個設計師做了一張1136x750px的頁面,這長頁面是針對iPhone6的
Python 模塊調用和global的用法
python global python 現有兩個文件,一個的文件名為ideal.py,另一個為hub.py,兩者都在目錄modualsio裏。ideal的具體內容為:num = 3class Foo(object): global num def foo(self): retur
PHP 閉包獲取外部變量和global關鍵字聲明變量的區別
notice pro 一個 clas 閉包 logs line 函數 調用 最近在學習workerman的時候比較頻繁的接觸到回調函數,使用中經常會因為worker的使用方式不同,會用這兩種不同的方式去調用外部的worker變量,這裏就整理一下PHP閉包獲取外部變量和glo
新的形勢下我們如何玩轉安全和雲計算?
雲計算在雲計算大數據時代,不斷增長的業務需求導致數據中心日益復雜,建設、管理、維護的成本也隨之逐年增長,精簡 IT 成為廣大組織機構數據中心建設最切實的需求。在新一代的數據中心中,傳統架構開始轉向軟件智能定義:專用硬件被標準服務器取代,傳統三層架構被簡化成超融合IT新架構,數據中心變得更加標準、 彈性、簡單。
轉 opacity() 和 rgba() 的區別?display 和 visibility 有什麽不同?
支持 body text position frame alpha pla 引擎 操作 一.背景介紹: 1.大家在寫頁面時,會用到各種元素,比如div, img等等。有時候一張頁面會放好幾張圖片,圖片如果顯示效果都一樣,看起來很單調,整個頁面給人的感覺會很硬。那麽
spring boot 跳轉頁面和熱加載的坑
star end 模版 pre devtools work ram 生產環境 false 跳轉頁面需要加上模版依賴:<!--thymeleaf--><dependency> <groupId>org.springframework.b
大神教你輕松玩轉Docker和Kubernetes中如何運行MongoDB微服務
cdn 成員 實現 細節 步驟 class 就會 接受 blog 本文介紹了利用Docker和Kubernetes搭建一套具有冗余備份集合的MongoDB服務,從容器對CI和CD引發的改變入手,討論了容器技術對MongoDB帶來的挑戰和機會,然後實戰如何部署一套穩定的Mo
C#DES加密,JavaDES解密,另轉C#和Java實現Des完整代碼
sso output uri sta RM light ash for str C#DES加密,JavaDES解密,另轉C#和Java實現Des完整代碼 轉載 2014年06月17日 17:36:09 標簽: DES / C#DES / JavaDES /
javascript使用btoa和atob來進行Base64轉碼和解碼
ring scrip str pre AS sid encode highlight nbsp javascript中如何使用Base64轉碼 let str = ‘javascript‘; let btoaStr = window.btoa(str); //轉碼
微信小程序頁面跳轉方法和攜帶參數詳解
nload 使用 名稱 屬性 這一 模板語言 UNC 方法 rec 1.頁面跳轉方式 (1)標簽跳轉 open-type的屬性值對應api裏的用法即wx.的用法 1 <navigator url="/page/navigate/navigate?t
js中post中文參數轉碼和解碼
OS AR 轉碼 encode encodeuri 前端 部分 進行 code 作為基礎知識和血淋林的教訓,前端一定要記得post請求時將參數中帶有中文的部分進行轉碼!! var str=‘宋宇·特弱夫斯基‘; //轉碼: encodeURI(encodeURI(str))
js中字符串轉base64和base64轉字符串
uri func var span clas 字符串 return nbsp 字符 var str = ‘阪井泉水‘; //console.log(encodeURI(str)); //console.log(btoa(encodeURI(str)));
[轉]Bram和Dram的區別
浪費 linx 延時 ron distrib async mem 固定 邏輯 選擇distributed memory generator和block memorygenerator標準: Dram和bram區別: 1、bram 的輸出需要時鐘,dram在給出地址後