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、在程序的一開始定義的變量是全局變量,作用域是整個程序。
#當全局與局部變量同名時:在定義局部變量的子程序內,局部變量生效,在其他地方全局變量生效!