python3 函數

形式參數: 實際參數:固定數參數 默認參數:給參數一個默認值,賦予新值時覆蓋默認值。 位置參數:sys.argv[XX] 代碼名稱、函數、變量不可以與系統默認參數、模塊名字相同 if __name__ == '__main__': __name__: 在主動調用的時候返回__main__(意思就是主動調用這個函數) 在被動調用的時候返回__foo__(像導入模塊的時候,順帶到這個地方,並不是要執行它的時候返回foo) 所以在if __name__ == '__main__':下面的代碼是屬於在主動調用的時候才執行。 前向引用: def foo(): print('in foo') bar() #此時函數的內容並沒有執行,當調用的時候纔開始真正的執行函數 #foo() 如果這個時候調用foo()函數的話,會報錯,因爲bar函數還沒有生成 def bar(): print('in bar') foo() 內部函數/內嵌函數: def foo(): print('in foo') def bar(): print('in foo-bar') bar() foo() #函數bar()只能在foo函數內部調用,foo函數結束bar則結束,類似於局部變量的意思 函數操作符: 使用一對圓括號()調用函數,如果沒有圓括號,只是對函數的引用 任何輸入的參數都必須放置在括號中 調用:把函數執行一遍 引用:把函數本身指向引用者 >>> def func(): ... return 'hello wlrkd' ... >>> a = func() >>> b = func >>> a 'hello wlrkd' >>> b <function func at 0x7f90fc1afe18> >>> b() 'hello wlrkd' 關鍵字參數: 關鍵字參數的概念僅僅針對函數的調用 這種理念是讓調用者通過函數調用中的參數名字來區分參數 這樣規範允許參數缺失或者不按順序 def get_ingo(name, age): print('%s is %s years old' % (name, age)) get_ingo('bob', 23) get_ingo(23, 'bob') get_ingo(age=23, name='bob') #get_ingo(age=23, 'bob') #錯誤,關鍵字參數必須在後 #def func(age=23, name): #錯誤,定義函數時,有默認值的參數必須在後 # get_ingo(23, name='bob') #錯誤,name變量得到了多個值 # get_ingo('bob', 23, 24) #錯誤,調用函數時,實參個數要與形參個數相同 get_ingo('bob', age=23) 參數組: python允許程序員執行一個沒有顯示定義參數的函數 相應的方法是通過一個把元組(非關鍵字參數)或字典(關鍵字參數)作爲參數組傳遞給函數 def get_args(*args): #一個*號代表以元組形式接收參數 print(args) def get_kwargs(**kwargs): #兩個*號代表以字典形式接收參數 print(kwargs) def get_info(name, age): print('%s is %s years old' % (name, age)) if __name__ == '__main__': get_args() get_args('abc') get_args(10, 20,30, 40) get_kwargs() get_kwargs(name='bob', age=25) info = ['bob', 23] get_info(*info) #在實參傳遞的時候以一個*號,代表字符串字符串、元組、列表 info_dict = {'name':'azj', 'age':25} get_info(**info_dict) #兩個*號代表的是字典的含義,將字典進行傳遞 () ('abc',) (10, 20, 30, 40) {} {'name': 'bob', 'age': 25} bob is 23 years old azj is 25 years old
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章