1. 程式人生 > >day18 函數定義、參數;名稱空間;全局變量及局部變量。

day18 函數定義、參數;名稱空間;全局變量及局部變量。

意思 加載 **kwargs 方式 nbsp span 接收 none 默認

Python之路,Day6 = Python基礎6

函數的定義

def func1():                # 定義一個函數,名字叫func1,括號中沒有傳入參數
    print(hello word)     # 這裏是 func1 的內容,可以定義為任意代碼
    return 1                # return 是返回的意思,後面是返回值,調用時可以用參數接收,返回值的內容可以為任意形式
# python執行的時候只會檢查函數裏面是否有語法問題,沒有的話,過。。。
# 函數中可以有多個return, 但是執行到return時,函數停止執行,並返回結果,也就是說,每個函數只會有一個返回值
# 每個函數都有返回值,如果不寫,默認為 None 。

函數的參數

#   第一種情況
def func1(x, y, z):         # 這個函數需要你在使用它的時候傳入三個參數
    print(x, y, z)

func1(1,2,3)                # 這種調用時傳入的參數需要與上面值為一一對應。
結果:1, 2, 3
func1(z = 3, y = 2, x = 1)  # 這種調用方式已經指定了各個參數分別對應給誰,所以可以不必一一對應位置。
結果:1, 2, 3
#   第二種情況
def func2(x=1, y=2, z=3):   # 這個函數在你使用的時候,不是必需傳入參數,如果不傳入參數的話,那麽默認為後面所賦值的內容。
print(x, y, z) func2() 結果:1, 2, 3 func2(5, 6, 7) 結果:5, 6, 7 # 第三種情況 def func2(x,y,z=3): # 兩種方式可以合並使用,但是由默認賦值的參數,必需放在最後 pass # 第四種情況 def func3(*args): # 當我們不知道需要傳入多少個參數(1,2,3,4,5)的時候,可以一用 *args 作為參數,這個意思是,把所有的傳入的值(所有只傳值)作為一個元組保存在 args 中; pass #
第五種情況 def func3(**args): # 當我們不知道需要傳入多少個參數(x=1,y=2)的時候,可以一用 **kwargs 作為參數,這個意思是,把所有的傳入的值(所有只傳值)作為一個字典保存在 **kwargs 中; pass

名稱空間
  內置名稱空間
    系統自帶:如,系統定義好的變量名、函數名、類名等。
  全局名稱空間
    自定義的全局的:如,自定義好的變量名、函數名、類名等但他們所定義的位置不應該屬於其他的類或方法中。
  局部名稱空間
    自定義的局部的:如,自定義好的變量名、函數名、類名
註:三者的加載順序,內置名稱空間、全局名稱空間、局部名稱空間

全局變量及局部變量
全局變量:內置名稱 + 全局名稱
  作用域:作用與整個文件
局部變量:局部名稱
  作用域:作用與當前的位置(類或方法等)及包含的子程序(位置或方法等)

day18 函數定義、參數;名稱空間;全局變量及局部變量。