作用域,全局和局部變量

def test3(name,x=2,*args,**kwargs): #函數調用函數時,要在被調用的前面

print(name)

print(x)

print(args)

print(kwargs)

logger("TEST4")

#
#

def logger(source):

print("from %s" %source)

test3("alex",age=18,sex="m",x=4)

#局部變量

school="old boy"

def change_name(name):

global school #強制把局部變量改成全局變量,覆蓋已有的全局變量

school="MAGE"

print("before change",name,school)

name="Alex" #這個函數就是這個變量的作用域

print("after change",name)

name="alex"

change_name(name)

print(name)

print(school)

def change_name(): #絕對不要這麼改!!!!單獨的字符串,單獨的整數!!

global name

name="alex"

#

change_name()

print(name)

列表,字典,集合都可以在函數中改全局變量!(字符串,整數不能再裏面改)

school="oldboy"
names=["alex","zhaz","rain"]
def change_name():
names[0]="烏龜"
print("inside",names)

change_name()
print(names)

#全局與局部變量
#1、在子程序中定義的變量爲局部變量,局部變量的作用域是定義該變量的子程序。
#2、在程序的一開始定義的變量是全局變量,作用域是整個程序。
#當全局與局部變量同名時:在定義局部變量的子程序內,局部變量生效,在其他地方全局變量生效!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章