Python中的Function定义方法第1/2页
时间:2021-05-10 20:33:49
下面就先定义一个函数:
def foo():
print('function')
foo()
在上述代码中,定义了一个名为foo的函数,这个函数没有参数。最后一行代码的功能是调用这个函数。这是一个函数的最简单形式。下面来介绍一下有参数的函数:
def foo():
print('function')
def foo1(a,b):
print(a+b)
foo()
foo1(1,2)
foo1就是一个有参数的函数,使用foo1(1,2)就可以调用这个有参的函数了。
在程序中,有变量存在,就会涉及到变量的作用域的问题。在Python中,变量的作用域分三个等级:global、local和nonlocal。
global:顾名思义,表示全局变量。即这个变量在python中处于最高层次上,也就是这个变量的定义层次最高,而不是在函数或类中。
local:局部变量,被定义在函数之中。
nonlocal:这是一个相对的概念。在python中,函数内部可以嵌套定义内部函数,这样函数内部的变量相对于函数内部的内嵌函数来讲就是nonlocal的。
下面,给出相关的程序来说明,首先看一下全局和局部变量:
x = 1
y = 2
def foo(x):
print(x)
print(y)
print('***********')
x = 3
global y
y = 3
print(x)
print(y)
print('***********')
foo(x)
print(x)
print(y)
#************************
#运行结果
1
2
***********
3
3
***********
1
3
在上述程序中,定义了两个全局变量x和y, 在函数foo内部,也定义了一个局部变量x。根据运行结果可知,在foo内部,变量x是真正的局部变量。因为对其所做的修改并没有对全局变量x产生影响。另外,如果在foo内部需要使用全局变量,则需要使用global关键字。global y的意图就是声明变量y为外部声明过的全局变量y。所以,在foo内部对y进行修改后,在foo外部仍然有影响。因为foo修改的是全局变量。
再来看一下nonlocal:
def out():
z = 3
def inner():
nonlocal z
z = 4
print('inner function and z = {0}'.format(z))
inner()
print('out function and z = {0}'.format(z))
out()
#**********
#运行结果
inner function and z = 4
out function and z = 4
12下一页阅读全文
标签:Python,Function
0
投稿
猜你喜欢
VsCode搭建Go语言开发环境的配置教程
2024-05-11 09:09:02
python抓取网页中的图片示例
2022-02-24 20:07:22
Python爬取酷狗MP3音频的步骤
2022-04-07 03:15:21
mysql 8.0.22 winx64安装配置方法图文教程
2024-01-16 01:03:20
Python通过for循环理解迭代器和生成器实例详解
2022-08-23 14:34:59
Python实现arctan换算角度的示例
2023-07-16 20:31:28
MySQL判断时间段是否重合的两种方法
2024-01-21 02:41:05
python爬虫 正则表达式解析
2022-07-16 18:24:01
Linux安装Pytorch1.8GPU(CUDA11.1)的实现
2021-12-20 10:02:00
python3 kubernetes api的使用示例
2021-11-11 00:56:18
Python利用matplotlib模块数据可视化绘制3D图
2023-07-25 07:48:24
Python中TypeError:unhashable type:'dict'错误的解决办法
2022-05-09 19:57:41
记录一篇关于redux-saga的基本使用过程
2023-07-15 16:43:19
Python Dataframe常见索引方式详解
2023-06-21 21:03:25
next在python中返回迭代器的实例方法
2022-10-28 12:35:41
django和flask哪个值得研究学习
2021-10-02 16:52:46
asp如何编写一个小数转换分数的函数?
2009-11-08 19:01:00
JS控制输入框内字符串长度
2024-02-24 19:30:59
ASP trim,ltrim,rtrim 去前后空格 函数
2011-03-03 10:39:00
Golang使用第三方包viper读取yaml配置信息操作
2024-05-09 14:51:19