1. 程式人生 > >關於python全域性變數

關於python全域性變數

描述

global best_pec1
def main():
	...
	best_prec1 = 1
	train()
	...
def train():
	print(best_prec1)

報錯: best_prec1沒有定義。
原因:當函式中定義同名的區域性變數時,原來定義的全域性變數會被區域性變數覆蓋掉。因此train()中就不再有變數best_prec1

定義的表現形式為 variable = xx, 即變數名字在等號左邊。賦值也是這個格式,所以會容易產生上述錯誤,在賦值時被錯誤地當成定義。

正確用法

  1. 函式中直接使用全域性變數
	def main():
		# best_prec1仍舊是全域性變零,將其值直接賦給了a,也並沒有改變best_prec1的值。
		a = best_prec1
  1. 函式中為全域性變數賦值時,加上global,使得不被覆蓋成區域性變數。
	def main():
		# 加上關鍵字global,best_prec1仍舊是全域性變數,不會被覆蓋。
		global best_prec1
		best_prec1 = 3
		...
		train()
		...
		
	def train():
		print(best_prec1)
	

相關推薦

python--全域性變數和區域性變數

區域性變數: 是在函式內部定義的變數,只能在函式內部使用 函式執行結束後,函式的區域性變數,會被系統回收 作用:在函式內部使用,臨時儲存函式內部需要使用的資料 全域性變數: 是在函式外部定義的變數(沒有定義某一個函式內,所有函式都

python全域性變數、區域性變數&類屬性、例項屬性

由於這幾個變數比較容易混淆,下面總結一下。 全域性變數: 在一個py檔案或者一個模組或者包中,但不在類中、不在函式內中的變數。 區域性變數 在函式內、在class的方法內(未加self修飾),這就是區域性變數 靜態變數/類變數 在class內的,但不在class的方法內

Python之路Python全域性變數與區域性變數、函式多層巢狀、函式遞迴 Python之路Python全域性變數與區域性變數、函式多層巢狀、函式遞迴

Python之路Python全域性變數與區域性變數、函式多層巢狀、函式遞迴 一、區域性變數與全域性變數   1、在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。 全域性變數

python全域性變數語句global

在python中使用函式體外的變數,可以使用global語句 變數可以是區域性域或者全域性域。定義在函式內的變數有區域性作用域,在一個模組中最高級別的變數有全域性作用域。 在編譯器理論裡著名的“龍書”中,阿霍、賽西和烏爾曼作了如下總結: “宣告適用的程式的範圍被稱為了宣告的作用域。在一個過程中,如果名字

python全域性變數、區域性變數

全域性變數名大寫 區域性變數名小寫 全域性變數 NAME = 'alex' def printme(): print(NAME) printme() # alex 在函式內部修改全域性變數 用global對全域性變進行修改。 NAME =

python全域性變數和區域性變數

在函式內部定義的變數叫區域性變數,在函式外定義的變數叫全域性變數 如果全域性變數和區域性變數名稱相同,則在函式內部用的是區域性變數的值,就像就近原則一樣;在函式體外,用的還是全域性變數 a = 10 d

關於python全域性變數

描述 global best_pec1 def main(): ... best_prec1 = 1 train() ... def train(): print(best_prec1) 報錯: best_prec1沒有定義。 原因:當函式中定義同名

python全域性變數-區域性變數區別及用法

對於很多初學的同學,對全域性和區域性變數容易混淆,看看下面給大家的講解相信都應該明白 兩者的區別了。 定義: 全域性變數:在模組內、在所有函式的外面、在class外面 區域性變數:在函式內、在class的方法內 下面來看看例子 一、函式內部呼叫全域性變數 a="he

【轉】Python 變數命名規範 以及 Python全域性變數、區域性變數、類變數、例項變數 總結

變數命名規範:      函式和普通變數名 由小寫字母和下劃線組成,類 大寫 全域性變數,區域性變數,類變數,例項變數總結: (python大盤點:全域性變數、區域性變數、類變數、例項變數) (python中的類變數、成員變數和成員函式的區域性變數使用)

Python 全域性變數、區域性變數、靜態變數 詳解

全域性變數 全域性變數供全域性共享,全域性類和函式均可訪問,達到同步作用。同時還可以被外部檔案訪問。 它的一個特徵是除非刪除掉,否則它們會存活到指令碼執行結束,且對於所有的函式,它們的值都是可以被訪問的。 X= 100 def foo():

Python全域性變數說明

1、全域性變數是位於檔案內部的頂層的變數名2、全域性變數如果在函式內被賦值的話必須經過宣告3、全域性變數在函式內部不經過宣告也可以被引用。例:num = 1 def foo1(): '''

Python千萬要注意的全域性變數和區域性變數問題

1、直接在函式中呼叫全域性變數 m = 100 def fun(): print("m1:",m) fun() print("m2:", m)  輸出: 2、函式體內呼叫與全域性變數同名的區域性變數 m = 100 def fun(): m = 50

關於python全域性變數和區域性變數

全域性變數: 定義在函式外部,作用域是整個程式碼段,儲存在記憶體中。 區域性變數: 定義在函式內部,作用域僅在函式內部,儲存在棧中,當函式完成功能,區域性變數會自動丟失。 如果在函式內試圖是修改全域性變數,python會自動建立一個區域性變數替代,名字和全域性變數相同。 下面摘抄小甲魚老

Python之路-Day07區域性變數全域性變數,遞迴函式

區域性變數和全域性變數的含義 在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數. 全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式. 當全域性變數於區域性變數同名時: 在定義區域性變數的子程式內,區域性變數起作用,在其它地方全域性變數起作用.

Python-13-函式_02_區域性變數全域性變數

1 """ 2 # 1、區域性變數和全域性變數 3 4 在子程式中定義的變數稱為區域性變數,在程式的一開始(程式碼前面沒有縮排)定義的變數稱為全域性變數。 5 全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。 6 當全域性變數與區域性變數同名時: 7 在定義區域性變數的

Python變數學習-認識全域性變數和區域性變數

學習Python的過程中少不了用到變數,在日常的編寫程式的過程中,每時每刻都在使用變數,   問:什麼是變數 答:變數是可以改變的數,通常沒有固定的值 問:有幾種變數 答:變數分為2種形式,即:全域性變數和區域性變數   名詞解釋:   全域性變數:顧名思義全域性變數,作用

Python 多執行緒,(全域性變數)資料共享,threading.Lock() 互斥鎖

  demo.py(互斥鎖): import threading import time # 定義一個全域性變數 g_num = 0 def test1(num): global g_num # 全域性變數可以實現執行緒間資料共享。也可以通過傳參實現 fo

Python中的全域性變數與global

剛學習Python,遇到個問題:為什麼有些定義在函式外的變數可以直接被函式使用,有些就不行呢? 如:   count = 0   def change():     count += 1   change() # 報錯   L = []   def changeL():     L.appen

python全域性變數與區域性變數

全域性變數和區域性變數的區別在於作用域,全域性變數在整個py檔案中宣告,全域性範圍內可以使用;區域性變數是在某個函式內部宣告的,只能在函式內部使用,如果超出使用範圍(函式外部),則會報錯。 1 #!/usr/bin/python3 2 # -*- coding: utf-8 -*- 3 # @T

Python 區域性變數全域性變數

Demo 全域性變數是在整個py檔案中宣告,全域性範圍內都可以訪問 區域性變數是在某個函式中宣告的,只能在該函式中呼叫它,如果試圖在超出範圍的地方呼叫,程式就爆掉了 monet=22323 # 全域性變數#區域性變數 不加globaldef functiondemo():