注意:一般*args與**kwargs一起使用,這是超級無敵萬能引數
1.常見形參模式:
def func1(a1,a2):2.位置引數永遠在關鍵字引數之前!pass
def func2(a1,a2=none):
pass
def func3(*args,**kwargs):
pass
作用域中查詢資料規則:優先查詢自己局域內資料,自己沒有再去父級作用域查詢,以此類推,可以找到,可以修改,不能為父級作用域的變數重新賦值.
global '全域性,全球'強制更改全域性作用作用域,先global+變數,再對變數賦值
nonlocal '外地' 強制更改父級作用域變數,先nonlocal+變數,再對變數賦值
# 示例一name = ["老男孩",'alex']
def func():
global name
name = '我'
func()
print(name)
# ############################## nonlocal
name = "老男孩"
def func():
name = 'alex'
def inner():
nonlocal name # 找到上一級的name
name = 999
inner()
print(name)
func()
print(name)
全域性作用域:全域性作用域內的資料公用
區域性作用域:區域性作用域可以使用全域性作用域內的資料,但是全域性作用域使用不了區域性作用域的資料即
函式的作用域鏈:小範圍作用域可以使用大範圍的變數,但是反之不行,他是單向的。
函式內只可以呼叫全域性作用域的函式
# x = 10# def func():
# x = 9
# print(x)
# def x1():
# x = 999
# print(x)
# print(x)
# x1()
## func()
# x = 10
# def func():
# x = 8
# print(x)
# def x1():
# x = 999
# print(x)
# x1()
# print(x)
## func()
# x = 10
# def func():
# x = 8
# print(x)
# def x1():
# print(x)
# x1()
# print(x)
## func()
# x = 10
# def func():
# x = 8
# print(x)
# def x1():
# print(x)
# x = 9
# x1()
# x = 10
# print(x)
## func()
作用域
python函式預設引數作用域
當def函式引數預設值為物件時,例如列表,字典 示例1 猜測一下,會輸出什麼?def ddd a,b return b print ddd 1 print ddd 2,a b c print ddd 3 1 a b c 2 3 你是否認為是這樣?輸出一下看看 輸出結果 1 a b c 2 1,3 看...
函式引數,作用域
def foo x,y,args,a 1,b,kwargs print x,y print args print a print b print kwargs foo 1,2,3,4,5,b 8,c 4,d 5 1 2 3,4,5 18 後定義的引數,必須被傳值 有預設值的除外 且必須按照關鍵字實參...
函式 引數 變數作用域
一 函式引數 1.必須引數 必需引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。呼叫printme 函式,你必須傳入乙個引數,不然會出現語法錯誤 小括號內的就是引數 小括號內沒東西叫做無參,有叫有參 求任意三個數之和 在定義函式的時候小括號內寫的是變數名字,不需要賦值 在呼叫函式的時候小...