Function in Python

Function is a bundle of expression and operations.

A function in Python makes up 3 parts:

|---------------|---------------------------------------------------------------------------------|
| Parameters | A function can receive any number of parameters |
| Function Body | The main structure of function. All the parameters will be process in the body. |
| Return value | the funciton body can process the data and then generate a return result. |

1. Grammar of Function

python 复制代码
def my_function():
    # do sth
    # return sth
  1. We use key worddef to define a function. (def is the abbreviation of define)

  2. the name of function is arbitrary. (in the instance, the name of function is my_function)

  3. the function body should be wrap in the indentation.

  4. you can return a variable or not , using return ... (e.g. return "hello")

Now see a concrete exemple:

python 复制代码
def add(a, b):
    return a + b

# The name of the function is add, meaning addition operation
# The function body contains a return statement
# the a + b will calculate the addition of a and b
# and then the result of a + b will be return

How to use function defined by ourselves?

python 复制代码
a = add(1, 5)
print(a)

# 1 and 5 will be pass to the function add as arguments and then be added
# the function return the addition of 1 and 5
# variable a receive the return value of add(1, 5), then a is 6 now
# print() is also a build-in function, which can output the value of a on the screen

2. Details

Understanding the nature of function requires you to know following points:

2.1 When variables are passed to a function as arguments, the interpreter does2things:

  • copy the references of the variables
  • pass the copies of the variables to the function

As you can see, in the instance

复制代码
a = 1
b = 2

add(a, b)
  • a is a reference pointing to a space in the memory storing 1 , and b points to the other storing 2 as well.
  • Then the interpreter copy the reference a and b and create their copies . We just call them a1 and b1 . Then a1 and b1 are passed to the function.

2.2 When the function return a variable(such as return a + b), the interpreter only return the reference of the variable.

  • In the instance above, the value of a + b will be stored in a temporary variable and then the function will return the reference of the variable.

    original:
    a ----> 1
    b ----> 2

    copy:
    a, a1 ----> 1
    b, b1 ----> 2

    pass:
    add(a1, b1)

    operate:
    a1 + b1 ----> 3

    return:
    c, a1 + b1 ----> 3
    return c

3. Scope of value

3.1 local and global variable

A scope of variable is the action scope of the variable. A variable defined in a for loop , while loop , if...else statement or function is a local variable , which CANNOT be accessed outside the block. In the following examples, you can see the limitation of a local variable.

python 复制代码
for i in range(0, 5):
    print(i)

print(i) # error, i is a local variable belonging to the for loop

============================================================================

if(1==1):
    a = "hello"
    print(a)

print(a) # error, i is a local variable belonging to the if...else block

============================================================================

def add(a, b):
    c = a + b
    return c

print(c) # error, c is a local variable belonging to the function add

============================================================================

def add(a, b):
    c = a + b
    return c

def get():
    print(c) # error, c is a local variable belonging to the function add

The concept on the opposite side of local variable isglobal variable . If a variable is not defined in any loop , if...else block or function , the variable will become a global variable , which can be accessed in the loop , if...else block.

python 复制代码
a = 1

for i in range(0,5):
    print(a)             #yes
    a = a + 1            #yes

if(1==1):
    print(a)             # yes
    a = a + 1            # yes

However , in a function, the condition is a little bit different. So we must introduce the concept of the scope of variable.

3.2 Scope of variable

A function will create a scope of variable. A variable in a scope can read the value of global variable but CANNOT change it.

python 复制代码
var = 1

def add(a, b):
    print(var)      # yes
    var = a + b     # error

If you want to change the value of a global variable, use keyword global

python 复制代码
var = 1

def add(a, b):
    global var      # now you can use the var
    print(var)      # yes
    var = a + b     # yes

add(1, 2)
print(var)  # output 3

Note that if the parameters of a function has the same name of a global variable, the interpreter will give priority to using local variable.

python 复制代码
a = 1

def add(a, b):
    return a + b     # the a here is the argument

add(2 ,4)   # return 6

Note that a loop or if...else statement won't create a scope of variable

相关推荐
二十雨辰10 分钟前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码20 分钟前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
前端摸鱼匠1 小时前
YOLOv8 环境配置全攻略:Python、PyTorch 与 CUDA 的和谐共生
人工智能·pytorch·python·yolo·目标检测
WangYaolove13141 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
AALoveTouch1 小时前
大麦网协议分析
javascript·python
ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
xcLeigh2 小时前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh2 小时前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics
YongCheng_Liang2 小时前
从零开始学 Python:自动化 / 运维开发实战(核心库 + 3 大实战场景)
python·自动化·运维开发
鸽芷咕3 小时前
为什么越来越多开发者转向 CANN 仓库中的 Python 自动化方案?
python·microsoft·自动化·cann