1. 程式人生 > >函式物件和函式巢狀

函式物件和函式巢狀

# 1. 函式物件
#
# 函式是第一類物件:函式的記憶體地址可以像變數值一樣去使用
#
# 最簡單的來說吧:學變數的時候我們說過,定義變數時,
# 申請一塊記憶體空間存放值,然後將這個記憶體空間的地址與變數名建立聯絡,
# 我們通過變數名就可以訪問到值並做一些操作。函式也是一樣的,我們定義函式時,
# 申請了一塊空間存放函式的程式碼塊,然後將這個記憶體空間的地址與函式名建立聯絡。
# 我們同樣可以通過函式名去做一些和變數一樣的操作。
#
# 首先我們要宣告:函式名()這樣會觸發函式的程式碼塊的執行,就不是我們上面所說的通過記憶體地址去做操作了。
#
# 函式名就像變數一樣,所以我們可以變相的說這樣一句話(函式即變數。)

# 這句話不是python給我們規定的,而是我們為了更好的理解函式名的操作而自己創造的!!!

# 1,函式可以被引用

# a = 1
# b = a
# 這樣我們就將變數a的值引用給了b
# 函式名同樣可以這樣操作

# def func():
# pass
# f=func
# f()
# foo()就相當於是呼叫func函式
# 這樣我們就把func函式的記憶體地址與foo建立了聯絡。通過foo我們一樣可以得到與func一樣的執行效果

# 2,函式可以當作引數傳給另一個函式

# def func()
# pass
# foo(func)
# 這樣我們就實現了將func函式當做引數傳入foo函式

# 3,函式可以函式的返回值

# def func(name):

# return name
# a='hello egon'
# func(a)
# 這裡返回的就是函式名稱本身
# func(foo)
#把函式名當作引數傳入,函式名就會被當作返回值返回。

# 4,函式可以當作容器型別的元素

# a=['a','b']
# def func():
# pass
# def foo():
# pass
# a=[func,foo]
# 這裡就是函式當作容器型別的元素,這樣讓我們可以對函式有更多的呼叫

# 應用
# def register():
# print('註冊》》》')
# def login():
# print('登陸》》》')
# def pay():
# print('支付》》》')

# def transfer():
# print('購物車》》》')
#
# func_dic={
# '1':register,
# '2':login,
# '3':pay,
# '4':transfer
# }
# #func_dic['1']()
# while True:
# print("""
#
# 0 退出
# 1 註冊
# 2 登入
# 3 支付
# 4 轉賬
# """)
# choice = input('請輸入你的操作: ').strip()
# if choice == '0': break
#
# if choice not in func_dic:
# print('輸錯的指令不存在')
# continue
# func_dic[choice]()





 

# 函式的巢狀分為兩種:
# 1. 定義過程中的巢狀:在函式定義的程式碼塊中又定義了一個函式
# def func():
# pass
# def foo():
# pass

# 2. 呼叫過程中的巢狀:在函式呼叫的程式碼塊中呼叫了另一個函式
# def func()
# pass
# def foo()
# func()
# pass