python 函式 引數 作用域

2022-05-17 02:43:25 字數 1892 閱讀 8575

注意:一般*args與**kwargs一起使用,這是超級無敵萬能引數

1.常見形參模式:

def func1(a1,a2):

pass

def func2(a1,a2=none):

pass

def func3(*args,**kwargs):

pass

2.位置引數永遠在關鍵字引數之前!

作用域中查詢資料規則:優先查詢自己局域內資料,自己沒有再去父級作用域查詢,以此類推,可以找到,可以修改,不能為父級作用域的變數重新賦值.

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 函式,你必須傳入乙個引數,不然會出現語法錯誤 小括號內的就是引數 小括號內沒東西叫做無參,有叫有參 求任意三個數之和 在定義函式的時候小括號內寫的是變數名字,不需要賦值 在呼叫函式的時候小...