Python基本語法之函式
Python命名規範
名稱 |
說明 |
模組名 |
小寫字母,單詞之間用_分割 如:module_name |
包名 |
小寫字母,單詞之間用_分割 如:package_name |
類名 |
單詞首字母大寫 如:python class LogRecord(object): |
普通變數 |
小寫字母,單詞之間用_分割 如:exc_info |
例項變數 |
以_開頭,小寫字母,單詞之間用\_分割 如:_exc_info,不能訪問的類屬性,但可通過類提供的介面進行訪問, 不會被語句 “from module import *” 語句載入 |
私有例項變數 |
以\_\_開頭(2個下劃線),小寫字母,單詞之間用\_分割 如:__private_var ,外部訪問會報錯 |
專有變數 |
開頭,結尾,一般為python的自有變數,不要以這種方式命名 如:doc ,是系統定義的,具有特殊意義的識別符號 |
普通函式 |
小寫字母,單詞之間用_分割: 如:get_name() |
私有函式 |
以\_\_開頭(2個下劃線),小寫字母,單詞之間用分割 如:__get_name() ,外部訪問會報錯 |
函式規則
函式程式碼塊以 def 關鍵詞開頭,後接函式識別符號名稱和圓括號 ()。 |
任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。 |
函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。 |
函式內容以冒號起始,並且縮排。 |
return [表示式] 結束函式,選擇性地返回一個值給呼叫方。不帶表示式的return相當於返回 None。 |
函式語法
def 函式名(引數列表): 函式體 return |
函式示例
def printinfo( name, age ):
print ("名字: ", name)
print ("年齡: ", age)
return
printinfo( age=15, name="xiaoming" )
示例執行結果
可變引數和不可變引數
strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件
傳不可變引數示例
def ChangeInt( a ):
a = 10
b = 6
ChangeInt(b)
print( b )
示例輸出結果為6
傳可變引數示例
def changeme( mylist ):
mylist.append([2,3,4])
print ("函式內取值: ", mylist)
return
mylist = [10,20,30]
changeme( mylist )
print ("函式外取值: ", mylist)
示例輸出結果
關鍵字引數
Python 直譯器能夠用引數名匹配引數值,所以允許函式呼叫時引數的順序與宣告時不一致。
關鍵字引數示例
def printinfo( name, age ):
print ("名字: ", name)
print ("年齡: ", age)
return
printinfo( age=15, name="xiaoming" )
示例執行結果
預設引數
在函式定義時設定引數的預設值,呼叫函式時,如果沒有傳遞引數,則會使用預設引數。
預設引數示例
def printinfo( name, age = 18 ):
print ("名字: ", name)
print ("年齡: ", age)
return
printinfo(name="xiaoming" )
示例執行結果
不定長引數
含不定長引數的函式語法
def functionname([formal_args,] *var_args_tuple ): function_suite return [expression] |
不定長引數示例
def printinfo( arg1, *vartuple ):
print (arg1)
print (vartuple)
printinfo( 70, 60, 50 )
示例執行結果
第二種不定長引數語法,兩個星號 ** 的引數會以字典的形式匯入
def functionname([formal_args,] **var_args_dict ): function_suite return [expression] |
第二種不定長引數示例
def printinfo( arg1, **vardict ):
print (arg1)
print (vardict)
printinfo(10, a=20,b=30)
示例執行結果
匿名函式
python 使用 lambda 來建立匿名函式,只包含一個語句
lambda [arg1 [,arg2,.....argn]]:expression |
匿名函式示例
multi = lambda arg1, arg2: arg1 * arg2
print ("相乘後的值為 : ", multi( 10, 20 ))
示例執行結果
return語句
return返回結果示例
def sum( arg1, arg2 ):
return arg1 + arg2
print (sum( 10, 20 ))
示例的列印結果是30
變數作用域
Python的作用域一共有4種,使用變數時,以 L –> E –> G –>B 的規則查詢
作用域種類 |
說明 |
L (Local) |
區域性作用域 |
E (Enclosing) |
閉包函式外的函式中 |
G (Global) |
全域性作用域 |
B (Built-in) |
內建作用域 |
變數作用域程式碼示例
x = int(9.9) # 內建作用域
g_count = 0 # 全域性作用域
def outer():
o_count = 1 # 閉包函式外的函式中
def inner():
i_count = 2 # 區域性作用域
global和nonlocal關鍵字
global用於在區域性範圍內使用全域性變數而宣告,示例如下
num = 1
def my_fun():
global num # 需要使用 global 關鍵字宣告
print(num)
num = 1234
print(num)
my_fun()
print(num)
示例輸出結果
nonlocal關鍵字用於在內部巢狀中使用外層作用域(enclosing 作用域,外層非全域性作用域)中的變數,示例如下
def outer():
num = 1
def inner():
nonlocal num # nonlocal關鍵字宣告
num = 123
print(num)
inner()
print(num)
outer()
示例輸出結果
如果您喜歡該文章,別忘了點贊和評論哦!