1.函式的作用
2.函式的定義
3.函式的引數
4.函式的返回值
5.全域性變數和區域性變數
6.內部函式
將重複的**封裝到函式,使用時直接找函式即可。
大大增強了**的模組化和提高了**的重複利用率。
'''
格式:def 函式名([引數,引數,....]):
函式體(重複的**)
注意事項:
1.必須使用關鍵字def
2.函式體注意縮排
3.函式名() 繫結在一塊,是必須寫的
'''
#第一類無參函式:
'''def func():
pass(函式體)
func() -----> 進行呼叫
'''
#第二類有參函式:
'''1.普通引數
def func(name,age):
pass(函式體)
func('小謝','18') --->這裡形參和實參個數要一致
'''#舉例:
deffunc
(name,age)
:print
(name,age)
#結果為:小謝 18
func(
'小謝'
,'18'
)
'''
2.可變引數
a.
def func(*args):
pass
func() ------>函式呼叫時,實參的個數可以沒有,也可以有多個。但是不可以是關鍵字引數(key = value這種型別)
func(4)
func('小謝',18)
'''#舉例:
deffunc
(*args)
:print
(args)
func(
)# 這樣呼叫的結果為:()
func(4)
# 這樣呼叫的結果為:(4,)
func(
'小謝',18
)# 這樣呼叫的結果為:('小謝', 18)
'''
b:def func(**kwargs):
pass
func(a = 1,b = 2) ---->函式呼叫時,實參的個數可以沒有,也可以多個,但必須是關鍵字引數
'''#舉例
deffunc
(**kwargs)
:print
(kwargs)
# 結果為:
func(a=
1, b=
2)
#c:
deffunc
(*args,
**kwargs)
:print
(args)
# 結果為:(1, 3)
print
(kwargs)
# 結果為:
list1 =[1
,3]dict1 =
func(
*list1,
**dict1)
# 這裡轉換成了func(1, 3, '1': 'a', '2': 'b')
#*和** 在傳實參時作用是對其進行拆解。在形參時*的作用是用元組封裝。**作用是用字典進行封裝
# d:混用
deffunc
(name,
*args,
**kwargs)
:# name是不可變引數,所以在進行呼叫時,必須要有這個引數。後面兩個可有可無。
print
(name, args, kwargs)
#根據*不能直接關鍵字引數,**只能接受關鍵字引數,系統會自動的從前往後進行識別和調整
func(
'小謝'
)# 結果為:小謝 () {}
func(
'小謝'
, a=1)
# 系統會直接跳過*args 結果為:小謝 ()
deffunc
(name,age =18)
#注意這裡,若呼叫時,不給age值,則預設age為18
pass
'''
return 返回值
1.return 後面可以是乙個引數,接收的時候x = add(1,2)
2.return 後面也可以是多個引數,如果是多個引數則底層會將多個引數先放到乙個元組中
將元組作為整體返回。
3.接收的時候也可以是多個。
'''# 舉例:
defadd
(a, b)
:return a + b # x = add(1, 2)呼叫函式時
# return a, b #y = add(1, 2)和i, j = add(1, 2)呼叫函式時
x = add(1,
2)print
(x)# 結果為:3
y = add(1,
2)print
(y)# 結果為:(1, 2)
i, j = add(1,
2)print
(i, j)
# 結果為:1 2
1.全域性變數:宣告在函式外層,所有的函式都可以訪問
2.區域性變數:在函式內部宣告,僅限於函式內部訪問
3.全域性變數可以在函式中隨便訪問,但是全域性變數如果是不可變的,則在函式中進行修改時需要新增global關鍵字(global 變數);全域性變數是可變的時候,不需要在函式中新增global關鍵字
就是函式中包函式
在內部函式中:
1.可以訪問外部函式的變數
2.內部函式可以修改外部函式的可變型別的變數比如:list1
3.內部函式修改全域性的不可變變數時,需要在內部函式中宣告 global 變數
內部函式修改外部函式的不可變數時,需要在內部函式中宣告 nonlocal 變數
4.locals() 檢視當前的函式中宣告的內容有哪些,以字典的形式輸出 print(locals())
globals()檢視全域性中宣告的內容有哪些,以字典的形式輸出 print(globals()) 注意這個裡 面會輸出一些系統的鍵值對
乙個注意事項:
函式宣告不頂用,必須進行函式呼叫才會執行
建構函式相關內容
1.screen 預設建構函式 若希望提供cin作為接受istream 引數的建構函式的預設實參 screen std istream is std cin screen unsigned ht,unsigned wd height ht width wd contents ht wd,接收所有成員...
虛函式相關內容
動態多型 名詞 虛基類 虛繼承 作用 菱形 多重繼承 純虛函式 抽象類 if 0 虛繼承作用 菱形繼承只構造一次 class a class b virtual public a class c virtual public a 多重繼承 class d public b,public c int ...
ORACLE相關內容
1 em,dbca,netca,netmgr出現亂碼方案 cd oracle home jre lib mv font.properties font.properties.bak mv font.properties.zh font.properties em,dbca,netca,netmgr詳...