91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現參數注解

發布時間:2021-07-10 17:13:40 來源:億速云 閱讀:384 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python中怎么實現參數注解,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1.函數定義的弊端
  • python是動態語言,變量隨時可以被賦值,且能賦值為不同的類型,動態語言很靈活,但是這種特性也是弊端;

  • 難發現:由于不做任何類型檢查,直到運行期問題才顯現出來,或者線上運行時才能暴露出問 題 ;

  • 難使用:函數的使用者看到函數的時候,并不知道你的函數的設計,并不知道應該傳入什么類 型的數據;

  • 解決辦法:可以通過增加文檔Documentation String(幫助文檔)和使用函數參數注解兩種辦法來解決這個弊端;

2.什么是參數注解
def show(x: int, y: int) -> int:
    '''
    :param x:
    :param y:
    :return:
    '''
    return x * y
print(show(10,20)) # 200
  • 函數中間使用 ‘’’ ‘’’包裹起來的注釋說明就是參數注解;

3.使用參數注解的好處
  • 參數注解可以避免動態語音的弊端;

  • 可以對函數的參數進行類型注解和對函數的返回值進行類型注解;

  • 參數注解只對函數參數做一個輔助的說明,并不對函數參數進行類型檢查;

4.Functools模塊的使用
# 示例1
import inspect
def add(x:int, y:int, *args,**kwargs) -> int:
    return x + y
sig = inspect.signature(add)
print(sig) # (x: int, y: int, *args, **kwargs) -> int
print(sig.parameters) # OrderedDict([('x', <Parameter "x: int">), ('y', <Parameter "y: int">), ('args', <Parameter "*args">), ('kwargs', <Parameter "**kwargs">)])
# 示例2: partial偏函數
from functools import partial
def add(x, y):
    return x + y
partial_add = partial(add, x=1)
result = partial_add(y=2)
print(result)   #輸出: 3
# lru_cache
from functools import lru_cache
import time
@lru_cache()
def add(x, y):
    time.sleep(10)
    return x + y
print(add(1,2))
print(add(2,3))
print(add(2,3))
print(add(2,3))
  • 指那些作用于函數或者返回其它函數的函數,通常只要是可以被當做函數調用的對象就是這個模塊的目標;

  • lru_cache裝飾器的作用就是把計算結果保存在內存中,下一次有同一個參數傳入的話就不會再次進行計算;

上述內容就是Python中怎么實現參數注解,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇信县| 巫山县| 吉安市| 武山县| 稷山县| 永昌县| 邵阳县| 榕江县| 武义县| 黔东| 高青县| 龙南县| 安宁市| 集贤县| 武宣县| 乌鲁木齐市| 儋州市| 铜梁县| 沿河| 台中市| 香河县| 涞水县| 进贤县| 昌邑市| 泉州市| 溧阳市| 临泽县| 兴海县| 兴业县| 正镶白旗| 竹北市| 湘潭县| 姜堰市| 吴堡县| 兰西县| 乌鲁木齐县| 翁源县| 囊谦县| 禹城市| 施甸县| 东乡族自治县|