1.回顧def
def sum(x,y):
? ? return x+y
res = sum(10,20) ? ? ? ?#調用函數
print(res)
2.函數的三個重要屬性
? ? ? ? -函數的類型:function
? ? ? ? -函數的ID:16進制的整數數值
? ? ? ? -函數的值:封裝在函數中的數據和代碼
# - 函數是一塊內存空間,通過函數名可以看到函數的本質
print(sum) ? ? ? ? ?#<function sum at 0x000002C8B07ED120>
print(id(sum)) ? ? ?#3060977815840
print(type(sum)) ? ?#<class 'function'> 函數的類型
3.函數返回值的拓展
? ? ? ? -函數返回值的內容
? ? ? ? -多函數返回值問題
? ? ? ? -return的另外含義
# - 引用傳遞
print("--------------------------------------------------------------引用傳遞")
def sum(x,y):
? ? return x+y
sum_text = sum
res = sum_text(10,20)
print(res) ? ? ?#30
#3.1函數的返回值
def test_return1():
? ? print("test_return1------") ? ? ? ?#test_return1------ ? ?只執行打印,無返回值
res = test_return1()
print(res) ? ? ? ? ?#None ? 因為缺少return語句,所以返回值為None
#3.1.1 修改
def test_return1():
? ? return ("test_return1------")
res = test_return1()
print(res) ? ? ? ? ?#test_return1------
#測試函數返回自身:列表,整數,字典等都可被返回
def test_return2():
? ? #return range(100) ? ? ?輸出為:range(0, 100) ? 返回對象
? ? return test_return2 ? ? ?#返回自身
res = test_return2()
print(res) ? ? ?#<function test_return2 at 0x0000026146F2D120>
?
#3.2返回多值,可直接使用多個變量接收
def test_returm3():
? ? return 10,{"username":"wzw","password":123},"wzw"
res1,res2,res3 = test_returm3()
print(res1,res2,res3) ? ? ? #10 {'username': 'wzw', 'password': 123} wzw
?
#3.3 return:返回執行結果 ? ? ? ?立即結束函數,返回被調處
def test_return4():
? ? for i in [10,20,30]:
? ? ? ? print(i) ? ? ? ? ? ?#會輸出10,20,30
? ? return
print(test_return4()) ? ? ? ? ? #None