# -*- coding: utf-8 -*-
# 變數的作用域:是指乙個變數所產生作用的範圍,在哪乙個範圍內能夠被直譯器識別。
# nameerror: name 'name' is not defined
# print name
# 變數的作用域:全域性變數和區域性變數
# 一般宣告在函式外部的變數,被稱為全域性變數,作用範圍是整個.py檔案內,都可以使用,都能被直譯器識別到。
# 一般宣告在函式內部內部的變數,可以理解為乙個區域性變數,該變數只能在函式內部使用,超出範圍,變數就不能再使用。
# my_list = [1,2,3,4]
# phone_info = [{},{}]
def sum(a,b):
# 形參a,b也是區域性變數,只能在函式內部使用。
# c: 就是乙個區域性變數
c = a + b
print (c)
if c == 30:
c = c + 100
print (c)
sum(10,20)
# print a,b
# 全域性變數名和區域性變數名相同
name = '張三'
# 預設情況下,如果全域性變數名和區域性變數名相同都是name,在函式內部是無法識別到函式外部的全域性變數的,而會在函式內部宣告乙個新的區域性變數叫name。
def show():
# local(區域性的) variable(變數) 'name' referenced(引用) before(在...之前) assignment(宣告):因為變數在進行引用時,會採取就近原則,看最近宣告的變數在哪。而最近宣告的變數是name='李四',所以出現了先引用,後宣告的錯誤。
# print '-----',name
# name = '李四'
# print '===',name
# 如果在函式內部,想修改外部的全域性變數(可以理解為重新賦乙個值),需要使用global
# global的作用:宣告乙個變數是已經宣告好的全域性變數,直接使用即可,可以避免宣告乙個和全域性變數重名的區域性變數。
global name
print ('-----',name)
name = '王五'
print ('===',name)
show()
print (name)
Python3 變數作用域
變數的作用域 是指乙個變數所產生作用的範圍,在哪乙個範圍內能被直譯器識別。print name 直接輸出的話會出現這樣的乙個錯誤 nameerror name name is not defined 變數的作用域 全域性變數和區域性變數 一般宣告在函式外部的變數,被稱為全域性變數,作用範圍是整個.p...
python3 變數的作用域
globals 檢視全域性作用域 locals 檢視當前作用域 a 10 deffunc a 20 print a func 20 print a 10 注意,在python中,變數是遵循就近原則的。在函式外面的變數被稱為全域性變數,它的作用域是整個py檔案。在函式內部的變數被稱為區域性變數,作用範...
Python3學習筆記 10 變數的作用域
一 變數的作用域 python的作用域一共有4種,分別是 l local 區域性作用域 e enclosing 閉包函式外的函式中 g global 全域性作用域 b built in 內建作用域 以 l e g b 的規則查詢,即 在區域性找不到,便會去區域性外的區域性找 例如閉包 再找不到就會去...