1. 程式人生 > 其它 >go 結構體的例項化方式

go 結構體的例項化方式

函式的學習

內容概要


  • 函式的定義與呼叫
  • 函式的分類
  • 函式的返回值
  • 函式的引數
    • 位置引數
    • 關鍵字引數
    • 預設引數
    • 可變長引數

內容詳情


函式的定義與呼叫

1.函式一定要遵循先定義後呼叫的原則
2.函式在定義階段只檢測語法不執行程式碼
  func()  # 報錯 name 'func' is not defined
# 定義函式
  def func():
      函式體程式碼
3.函式體程式碼只有在呼叫函式時才會執行
4.函式名其實相當於是變數名指向的是記憶體空間函式體程式碼所在的位置
# 呼叫函式
  '''函式的呼叫方式:函式名+() 如有引數則傳遞引數'''
  func() 就是去記憶體中找到函式體程式碼並執行

函式的分類

1.內建函式
  python直譯器提前定義好的可以直接呼叫的函式
    eg:len、open...
2.自定義函式
  程式設計師自己編寫的函式
      無參函式
         在函式定義階段括號內沒用引數
         呼叫無參函式 括號內也不需要寫引數
      有參函式
         在函式定義階段括號內有引數>>>:類似於變數名
         呼叫有參函式 在函式呼叫階段括號內也必須傳遞引數>>>:類似於變數值 
      空函式
         在定義階段函式體程式碼是用pass或者...佔位
         呼叫空函式 前期能夠通過空函式快速的羅列出程式中的大致功能
                   空函式大量的使用在專案中前期的功能框架搭建讓程式整體框架清晰
'''功能也可以看成是函式 函式也可以看成是功能'''

函式的返回值

# 函式的返回值就是呼叫函式之後返回的結果
# 如何獲取函式的返回值
  變數名 = 函式呼叫
# 如何操作返回值
  1.當函式體程式碼沒有關鍵詞return 返回值是None
  2.當函式體程式碼有return關鍵字但後面沒有跟任何值 返回值也是None
  3.當函式體程式碼有return關鍵字並跟了資料 那麼寫了什麼返回什麼
        如果寫的是值那麼直接返回值(任意資料型別)
        如果寫的是變數名那麼返回變數名指向的值
  4.return後面還可以跟多個值 用逗號隔開 會自動組織成元組返回出去
  5.函式體程式碼遇到return會立刻結束函式執行

函式的引數

# 函式的引數可以分為兩大類
1.函式在定義階段括號內寫的引數
  形式引數>>>:形參
2.函式在呼叫階段括號內寫的引數
  實際引數>>>:實參
# 形參與實參的關係
  形參類似於變數名 實參類似於變數值
  在呼叫函式的時候傳入實參 會與形參臨時繫結
  函式執行結束之後自動解除繫結

位置引數

位置形參
    在函式定義階段括號內從左向右依次填寫的變數名
位置實參
    在函式呼叫階段括號內從左向右依次傳入的真實資料
位置引數的特徵
    1.位置引數與位置實參在繫結關係的時候就是按照從左到右的順序依次繫結
    2.位置形參與位置實參的個數要一致 不傳、多一個、少一個都不行

關鍵字引數

主要在實參中出現
    指名道姓的給形參傳值 不需要遵循位置
    關鍵字引數必須放在位置引數的後面
    形參只能指向一個引數

預設引數

出現在形參中
    在函式定義階段就已經給一些形參賦值了
    後續如果不傳值則使用預設的
    後續如果傳值則使用傳入的
    預設引數的出現打破了形參與實參之間個數一致的情況
    預設引數必須定義在位置引數的後面 

可變長引數

*號在形參中可以接收多餘的位置引數 並組織成元組的形式賦值給*號後面的變數名
**在形參中用於接收多餘的關鍵字引數 並且組織成字典的形式賦值給**後面的變數名
# 可變長形參
  以後在定義函式的時候 如果不確定這個函式將來需要多少個實參
  則 def index(*args, **kwargs):
         pass 
     func()  # () {}
# 補充說明
  *和**不單單可以在形參中使用 還可以在實參中使用
  *號在實參中可以將列表或者元祖打散成位置引數一一傳入
  **號可以將字典打散成關鍵字引數一一傳入