欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章帶你深入學(xué)習(xí)Python函數(shù)

 更新時間:2022年01月24日 15:45:10   作者:三爺帶你飛  
這篇文章主要帶大家深入學(xué)習(xí)Python函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

函數(shù)的特性:

  • 函數(shù)是對象
  • 函數(shù)可以刪除
  • 函數(shù)名字和函數(shù)本身完全是分開的
  • 函數(shù)因為是對象,可以結(jié)合數(shù)據(jù)結(jié)構(gòu)使用
  • 函數(shù)因為是對象,可以作為函數(shù)參數(shù)
  • 函數(shù)因為是對象,可以在嵌套在函數(shù)體內(nèi)
  • 內(nèi)層函數(shù)對象能夠記憶住父函數(shù)的變量
  • 所有的函數(shù)都是對象,但是所有的對象并不一定都是函數(shù)

對象成為函數(shù)需要實現(xiàn)__call__協(xié)議

函數(shù)是對象:

# 函數(shù)是對象:支持賦值操作。
def test1(n):
    print(f"hello, {n}!")

# test1的函數(shù)名賦值給 new1
new1 = test1
new1("tom") # hello, tom!

函數(shù)可以刪除:

# 函數(shù)可以刪除
def test2(n):
    print(f"hello, {n}!")
del test2
# test2("tom") # NameError: name 'test2' is not defined

函數(shù)名字和函數(shù)本身完全是分開的:刪除test3,不影響已經(jīng)賦值的new3的調(diào)用

# 函數(shù)名字和函數(shù)本身完全是分開的:刪除test3,不影響已經(jīng)賦值的調(diào)用
def test3(n):
    print(f"hello, {n}!")

new3 = test3
del test3
new3("Jam") # hello, Jam!

函數(shù)因為是對象,可以結(jié)合數(shù)據(jù)結(jié)構(gòu)使用:

# 函數(shù)因為是對象,就可以結(jié)合數(shù)據(jù)結(jié)構(gòu)使用
def test4(n):
    print(f"hello, {n}!")

data = [1, "a", {"name": "tom"}, test4]
for i in data:
    from types import FunctionType
    if type(i) == FunctionType:
        test4("Lily")  # hello, Lily!

函數(shù)因為是對象,可以作為函數(shù)參數(shù):

# 函數(shù)因為是對象,就可以作為函數(shù)參數(shù)
def test5(n):
    print("原始函數(shù)執(zhí)行")
    print(f"hello, {n}")

def new5(n):
    n("Golang")

new5(test5)  # 原始函數(shù)執(zhí)行  hello, Golang

函數(shù)因為是對象,可以在嵌套在函數(shù)體內(nèi):

# 函數(shù)因為是對象,可以在嵌套在函數(shù)體內(nèi)
def test6(n):
    def inner1(m):
        new = m + "!!!"
        return new
    def inner2(m):
        new = m + "***"
        return new
    if n > 3:
        return inner2
    else:
        return inner1

result6 = test6(3)
print(result6("tom"))  # tom!!!

內(nèi)層函數(shù)對象能夠記憶住父函數(shù)的變量:也稱為閉包

# 內(nèi)層函數(shù)對象能夠記憶住父函數(shù)的變量
def test7(n):
    def inner(m):
        return m + n
    return inner

result7 = test7(7)
print(result7(6))  # 13

所有的函數(shù)都是對象,但是所有的對象并不一定都是函數(shù):

# 所有的函數(shù)都是對象,但是所有的對象并不一定都是函數(shù)
class A:
    pass

a = A()

def test8():
    pass

from types import FunctionType
print(isinstance(a, A))  # True
print(isinstance(test8, FunctionType))  # True
print(isinstance(a, FunctionType))  # False  所有的對象并不一定都是函數(shù)

對象成為函數(shù)需要實現(xiàn)__call__協(xié)議:

# 對象成為函數(shù)需要實現(xiàn)__call__協(xié)議
class B:
    def __init__(self, n):
        self.n = n
    def __call__(self, m):
        return self.n + m

b = B(9)
print(b(9))  # 18

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python屬性和內(nèi)建屬性實例解析

    Python屬性和內(nèi)建屬性實例解析

    這篇文章主要介紹了Python屬性和內(nèi)建屬性實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python實現(xiàn)字符串加密成純數(shù)字

    python實現(xiàn)字符串加密成純數(shù)字

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)字符串加密成純數(shù)字,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python 的列表遍歷刪除實現(xiàn)代碼

    python 的列表遍歷刪除實現(xiàn)代碼

    這篇文章主要介紹了python 的列表遍歷刪除,需要的朋友可以參考下
    2015-11-11
  • 人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型示例詳解

    人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型示例詳解

    這篇文章主要為大家介紹了人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python3 requests庫文件上傳與下載實現(xiàn)詳解

    python3 requests庫文件上傳與下載實現(xiàn)詳解

    這篇文章主要介紹了python3 requests庫文件上傳與下載實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python掃描端口的實現(xiàn)

    Python掃描端口的實現(xiàn)

    這篇文章主要介紹了Python掃描端口的實現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python語法詳解之decorator裝飾器

    Python語法詳解之decorator裝飾器

    裝飾器 decorator 或者稱為包裝器,是對函數(shù)的一種包裝,今天通過本文給大家分享Python語法詳解之decorator裝飾器的相關(guān)知識,感興趣的朋友一起看看吧
    2021-10-10
  • python單例設(shè)計模式實現(xiàn)解析

    python單例設(shè)計模式實現(xiàn)解析

    這篇文章主要介紹了python單例設(shè)計模式實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Python如何使用Eel和HTML開發(fā)桌面應(yīng)用

    Python如何使用Eel和HTML開發(fā)桌面應(yīng)用

    這篇文章主要介紹了Python使用Eel和HTML開發(fā)桌面應(yīng)用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python(Tornado)模擬登錄小米搶手機(jī)

    Python(Tornado)模擬登錄小米搶手機(jī)

    用Python(Tornado)模擬登錄小米帳號,搶小米手機(jī)
    2013-11-11

最新評論