成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 函數那不為人知的一面

開發 后端
通常我們定義一個函數,然后調用該函數時,函數相關的代碼才開始執行??墒呛芏嗳瞬⒉恢溃斘覀兌x函數時,一些代碼就開始執行了。今天就來說說函數這個不為人知的一面。

[[434013]]

通常我們定義一個函數,然后調用該函數時,函數相關的代碼才開始執行。可是很多人并不知道,當我們定義函數時,一些代碼就開始執行了。今天就來說說函數這個不為人知的一面。

先看一段代碼:

  1. def do_something(opt: print('參數 opt'), arg=print('參數 arg')) -> print('函數的返回值'): 
  2.     print("do something runing"
  3.  
  4. if __name__ == '__main__'
  5.     pass 

上面的代碼我們定義來一個函數,但是并沒有調用它,那么它會輸出信息嗎?

會的,參數里無論是類型提示部分,還是默認賦值部分,還是返回值的類型提示,里面的語句都會被執行,結果如下:

這個做法我自己是很少見的。把 print 函數換成打開文件、連接數據庫之類的操作,也都會被執行。

不過通常情況下,參數都是不可變類型,如果傳入可變類型,可能每次的函數調用,其結果都會被改變,例如:

  1. def do_something(opt: print("參數 opt"), arg=[]) -> print("函數的返回值"): 
  2.     print("do something runing"
  3.     print(f"{arg = }"
  4.     arg.append(0) 
  5.  
  6.  
  7. if __name__ == "__main__"
  8.     do_something(opt=1) 
  9.     do_something(opt=1) 

運行結果如下:

可以發現,調用兩次函數 do_something,雖然并沒有傳入 arg 參數,arg 的值已經發送了變化。如果不注意這點,可能會有 bug 發生。在 Pythcarm 中,會警告我們 arg 是可變對象:

如果要獲取函數的類型提示、默認值,可以這樣:

  1. def do_something(opt: 1, arg=2) -> 3: 
  2.     print("do something runing"
  3.     print(f"{arg = }"
  4.     arg.append(0) 
  5.  
  6.  
  7. if __name__ == "__main__"
  8.     print(f"{do_something.__annotations__ = }"
  9.     print(f"{do_something.__defaults__ = }"
  10.  
  11. #do_something.__annotations__ = {'opt': 1, 'return': 3} 
  12. #do_something.__defaults__ = (2,) 

本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2013-05-15 10:08:27

2021-06-23 14:12:40

算法隊列

2014-04-11 14:22:25

前端前端知識

2015-12-21 09:39:23

2010-08-05 11:14:12

Flex優勢

2013-07-16 13:59:15

空姐事件移動市場華強北生態鏈

2020-02-20 12:02:32

Python數據函數

2010-09-03 08:52:38

CSS

2013-08-09 09:27:08

vCentervSphere

2010-04-19 16:09:22

Oracle控制文件

2023-11-09 08:05:40

IDEA開發工具

2018-11-15 14:52:18

Windows 10Windows升級

2024-05-17 13:08:46

Python代碼

2011-11-08 13:41:27

蘋果siri人工智能數據中心

2011-11-15 10:25:56

IBMWindows

2014-08-18 10:44:31

斯諾登

2010-09-06 14:19:54

CSS

2012-11-30 14:13:01

2021-02-05 09:58:52

程序員Windows系統

2011-11-14 10:06:16

IBM大型機支持Windows系統POWER7
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 高清国产午夜精品久久久久久 | 精品毛片视频 | av永久免费 | 午夜激情视频 | 久久精品视频99 | 国产一二区免费视频 | 18性欧美 | 欧美一区二区三区视频 | 国产一卡二卡三卡 | 伊人亚洲 | 污免费网站 | 黄色国产 | 精品乱码久久久久 | 亚洲欧美日韩电影 | 国产美女特级嫩嫩嫩bbb片 | 久久机热 | 免费看的黄网站 | 国产成人综合在线 | av在线电影网站 | 一色一黄视频 | 91免费入口 | 丝袜美腿一区二区三区动态图 | 伊人春色成人 | 国产xxxx岁13xxxxhd | 三级av在线 | 一级黄色录像毛片 | 国产乱码高清区二区三区在线 | 中文字幕日韩欧美 | 亚洲专区在线 | 国产黄色一级片 | 成人看片在线观看 | 中文字幕亚洲区一区二 | 天堂在线一区 | 精品一区电影 | 日韩一区二区在线免费观看 | 久久性色 | 天堂av免费观看 | 97久久久久久 | 久草在线免费资源 | 亚洲一av| 成人综合一区二区 |