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

相关推荐
Metaphor69219 分钟前
Python 自动化办公:如何轻松在 PDF 中导入与导出表单数据
python·pdf·自动化
外收内放9 小时前
面向对象高级(实战案例)
开发语言·python·学习
专业程序开发源10 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
FPGA小迷弟10 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
卷无止境10 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
fanruitian10 小时前
python else用法
开发语言·python
Thinker QAQ10 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
用户83562907805111 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design11 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express
学Linux的语莫12 小时前
python中类的常见写法
开发语言·python·状态模式