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

Python 函數(shù)那不為人知的一面

開發(fā) 后端
通常我們定義一個函數(shù),然后調(diào)用該函數(shù)時,函數(shù)相關(guān)的代碼才開始執(zhí)行。可是很多人并不知道,當我們定義函數(shù)時,一些代碼就開始執(zhí)行了。今天就來說說函數(shù)這個不為人知的一面。

[[434013]]

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

先看一段代碼:

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

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

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

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

不過通常情況下,參數(shù)都是不可變類型,如果傳入可變類型,可能每次的函數(shù)調(diào)用,其結(jié)果都會被改變,例如:

  1. def do_something(opt: print("參數(shù) opt"), arg=[]) -> print("函數(shù)的返回值"): 
  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) 

運行結(jié)果如下:

可以發(fā)現(xiàn),調(diào)用兩次函數(shù) do_something,雖然并沒有傳入 arg 參數(shù),arg 的值已經(jīng)發(fā)送了變化。如果不注意這點,可能會有 bug 發(fā)生。在 Pythcarm 中,會警告我們 arg 是可變對象:

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

  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,) 

本文轉(zhuǎn)載自微信公眾號「Python七號」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python七號公眾號。

 

責任編輯:武曉燕 來源: Python七號
相關(guān)推薦

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優(yōu)勢

2013-07-16 13:59:15

空姐事件移動市場華強北生態(tài)鏈

2020-02-20 12:02:32

Python數(shù)據(jù)函數(shù)

2010-09-03 08:52:38

CSS

2023-11-09 08:05:40

IDEA開發(fā)工具

2013-08-09 09:27:08

vCentervSphere

2010-04-19 16:09:22

Oracle控制文件

2018-11-15 14:52:18

Windows 10Windows升級

2011-11-08 13:41:27

蘋果siri人工智能數(shù)據(jù)中心

2011-11-15 10:25:56

IBMWindows

2014-08-18 10:44:31

斯諾登

2024-05-17 13:08:46

Python代碼

2010-09-06 14:19:54

CSS

2012-11-30 14:13:01

2021-02-05 09:58:52

程序員Windows系統(tǒng)

2011-11-14 10:06:16

IBM大型機支持Windows系統(tǒng)POWER7
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久 | 欧美在线观看一区 | 亚洲国产精品一区 | 91精品在线播放 | 99精品国产成人一区二区 | 亚洲午夜av久久乱码 | 国产精品久久久久久久久久久久久 | 亚洲精品欧美 | 九色 在线 | 欧美午夜视频 | 波多野结衣二区 | 日韩一区二区视频 | 欧州一区二区三区 | 久久网国产 | 久久综合伊人 | 国产羞羞视频在线观看 | 国产免费一区二区 | 国产久| 狠狠撸在线视频 | 欧美性大战xxxxx久久久 | 九九国产在线观看 | 日韩在线免费视频 | 久久久久资源 | 日韩电影免费观看中文字幕 | 精品一区二区三区免费视频 | 久久久久久女 | 麻豆毛片 | 国产欧美一区二区三区国产幕精品 | 在线免费视频一区 | 亚洲成色777777在线观看影院 | a在线视频 | 成人日韩 | 97超在线视频 | 很很干很很日 | 精品国产欧美日韩不卡在线观看 | 色网在线看 | 日韩欧美一级 | 亚洲自拍偷拍免费视频 | 亚洲精品久久久9婷婷中文字幕 | 亚洲三区视频 | 九九热在线免费视频 |