【Day 16】Function 函式(续)

前言

  • 函式用於结构化程序,将需要重复用到的功能独立出来,透过函式的呼叫,传入资料与回传处理後的资料。可以减少相同程序码的出现次数,并且提高可读性和维护性。

  • 方便团队共同开发系统,其他人如果想使用这个函式只需要知道输入输出就可以了,不需要详细了解内部的细节。

  • 函式可以接收任何数量与型态的输入参数,并回传任何数量与型态的输出结果

今天要来继续介绍函式的使用方法!

Function 函式

函式使用

  • *args 和 **kwargs 运算子

    • *args 运算子:当我们需要传入大量的参数时,如果参数太多会让可读性变差,这时就可以用 * 来把参数都整成一组的。


      这个方法会把参数用 tuple 的形式打包

    • **kwargs 运算子:用 dict 的形式来打包,所以一定要使用关键字参数(Keyword Argument),才有办法对应到 dictkeyvalue

  • 函式类型

    • 无回传值:没有加上 return 的话只会单纯执行函式,但是他还是会回传一个 None 回到呼叫端,如果有用一个变数来接收这个值的话

    • 有回传值:在函式内加上 return 会把结果传回给呼叫端

  • Docstrings:对於 python 而言,程序的可读性很重要,所以我们可以在函式的开头加上一个字串来说明这个函式的细节,方便其他人查看时能更快进入状态。

    • 使用 help() 可以把函式中的 Docstrings 列印出来

  • 区域变数(Local Variable)及全域变数(Global Variable)

区域变数(Local Variable):只在函式内定义的变数称为区域变数,只有在函式内可以使用,所以在函式外 print 就会出错,如下图。

全域变数(Global Variable):只要是同一个 python 的档案就可以使用


读取会读取到全域变数

如果想要在函式内改变全域变数可以使用 global

待续...


<<:  Day 18:广度优先搜寻(BFS)

>>:  Day22宣告(JavaScript)

Vue.js 从零开始:computed

此篇後面会有点难懂,可以去看我的范例,更了解实际运作喔,各位加油! computed 计算属性 co...

Kotlin Android 第12天,从 0 到 ML - ConstraintLayout

前言: Kotlin 的语法讲完了,就来进入android 的世界了,首先要开一个空白的专案,来了解...

Material UI in React [Day 23] Data Display (part 3) 表格 & 提示

Table 这个套件其实跟原生的 table tag 没什麽太大的差异,在官方文件中有用到 Data...

Day 22. Hashicorp Vault: HTTP Status Codes

Hashicorp Vault: HTTP Status Codes 在使用Vault API 时,...

[Day26]约束规则、更改结构

在Oracle资料库中有两种方式可以定义约束规则(作用相同): 栏位层次约束(行内规范):将规定写在...