Python中的Function定义方法第1/2页

所属分类: 脚本专栏 / python 阅读数: 312
收藏 0 赞 0 分享
下面就先定义一个函数:
复制代码 代码如下:

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

更多精彩内容其他人还在看

Python3按一定数据位数格式处理bin文件的方法

今天小编就为大家分享一篇Python3按一定数据位数格式处理bin文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

对python pandas读取剪贴板内容的方法详解

今天小编就为大家分享一篇对python pandas读取剪贴板内容的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python中extend和append的区别讲解

今天小编就为大家分享一篇关于Python中extend和append的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

python安装pywin32clipboard的操作方法

今天小编就为大家分享一篇python安装pywin32clipboard的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

几行Python代码爬取3000+上市公司的信息

今天小编就为大家分享一篇关于几行Python代码爬取3000+上市公司的信息,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Python实现查找二叉搜索树第k大的节点功能示例

这篇文章主要介绍了Python实现查找二叉搜索树第k大的节点功能,结合实例形式分析了Python二叉搜索树的定义、查找、遍历等相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Python微医挂号网医生数据抓取

今天小编就为大家分享一篇关于Python微医挂号网医生数据抓取,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

python+pyqt5实现KFC点餐收银系统

这篇文章主要为大家详细介绍了python+pyqt5实现KFC点餐收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

python用opencv批量截取图像指定区域的方法

今天小编就为大家分享一篇python用opencv批量截取图像指定区域的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Python并发:多线程与多进程的详解

今天小编就为大家分享一篇关于Python并发:多线程与多进程的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多