預設引數,預設引數,放在引數的最後的最後面
def info(name,age,gender,city='hz'):
''':param name:
:param age:
:param gender:
:param city:預設引數
:return:
'''print('name:',name)
print('age:',age)
print('gender:',gender)
預設引數不可以使用可變引數,會保留上一次的結果,在後面一直追加結果
def f(x,l=):
for i in range(x):
print(l)
f(3)
f(3,[3,2,1])
f(3)
f(4)
help(print)
print(print.doc)魔法方法
將所有位置引數的打包成元組
def person_info(*args):
''':param args:
:return:
'''print(args)
for i in args:
print(i)
person_info(12,13,'zhang')
person_info(1)
person_info(1,2,4,5,6,7,8,9,12,15)
將所有的關鍵字引數打包成字典
def person_info(**kwargs):
''':param kwargs:
:return:
'''print(kwargs)
person_info(name='xiaowang',age=18)
person_info(age=18)
函式引數的混合運用以及*的作用
def sum_num(a,*args,c=7,**kwargs):
print(a)
print(c)
print(args)
print(*args)
#直譯器拆包傳遞
print(kwargs)
for key,value in kwargs.items():
print('key',key,'value',value)
sum_num(1,2,3,c=5,m=4,n=5)
#順序(位置引數,args,預設值引數,kwargs)
'''*的作用'''
def info(name,age,gender):
print(name,age,gender)
a = ['zhang1',19,'boy']
b = ['zhang2',1,'boy']
c = ['zhang3',9,'boy']
info(a[0],a[1],a[2])
info(*b)
#*自動拆包,挨個傳遞(引數的個數要相等)
全域性變數和區域性變數
name='zhang'
def info1():
#區域性變數
name='wang'
print(name)
def info2():
'''這個函式實現全域性變數的功能
:return:
'''global name
name='******x'
print(name)
def info3():
print(name)
info1()
info2()
info3()
l(區域性命名空間) e(外部巢狀函式) g(全域性命名空間) b(內建命名空間)
盡量不要使用同名的變數
static全域性 區域性變數,全域性變數及區域性變數
1 static變數和全域性變數都是分配在 靜態儲存區 2 static全域性變數 static區域性變數 全域性變數和區域性變數區別 他們都是分配在 靜態儲存區內,都是在程式開始的時候初始化的,他們的區別是作用域不同,static全域性變數作用域是在申明所在的檔案中,而全域性變數是全域性的,其他檔...
全域性變數和區域性變數
全域性變數 可以被不同的函式 類或檔案呼叫的變數,在函式外定義。區域性變數 只能在函式內使用,定義在函式內。區域性變數的使用 class myclass def myfun num 12 print myfun num num 正確 def myfun2 num num 1 print mufun ...
全域性變數和區域性變數
區域性變數 在方法中開闢的變數,只在方法中有效 區域性變數在定義時不會初始化,要顯式的給它乙個值 如未給它乙個初始值,雖然編譯的時候會通過,但是執行的時候會產生為初始化錯誤!方法呼叫 執行完,區域性變數便會自動釋放。在方法內的語句塊中建立的變數在編譯時假如未初始,如若使用,也會報未初始化錯誤!呼叫的...