Python 函数

函数简介

  • 函数定义以 def 开头,后面是函数名和函数参数
  • 函数不用指定返回值,直接在函数体中用 return 返回一个结果,或者直接 return 什么都不返回
def add(num):
	return num + 1

参数传递

  • Python 函数的参数,如果是数、字符串、元组等不可变的变量,并不会在函数体外影响他们。
  • 如果参数是可变的数据结构(如列表),则修改时有可能改变函数外的变量:
def change(n):
	n[0] = 'Steven'
names = ['Tom','Jerry']
change(names)
  • 要避免这样的结果,必须创建列表的副本。
  • 对序列进行切片操作时,返回的都是副本,即指向的不是同一个数据
  • 将上述调用函数稍微修改即可:
change(names[:])

关键字参数和默认值

  • Python 可以根据参数名称调用函数,如下:
def Hello(greeting,name):
	print('{},{}!'.format(greeting,name))
Hello(name = 'Jerry',greeting = 'Hello')
  • 要指定默认值,就直接在定义函数的时候加上等号即可
def Hello(greeting = 'Hello','name = 'Jerry')
  • 这样的好处就是可以忽略参数的位置关系,参数的顺序可以变化
  • 普通方法(位置参数)和关键字参数可以混用,但是要先指定位置参数,也不建议这么做。

收集参数

  • 在参数前面加一个 * 表示此参数会收集输入的其他参数,并放入元胞数组中,如下所示:
def test(x,y,*z):
	print(x,y,z)

test(1,2,3,4,"hhh")
#	x=1	y=2	z=(3,4,"hhh")
  • 带 * 的参数可以放在中间位置,但是其后的参数必须以关键字名称方式指定。
  • 带 * 参数不能接受关键字指定的参数,如果要用关键字指定收集,可以加两个 * 则以字典的方式收集。
def test(**x):
	print(x)

test(x=1,y=2,z=3)
# x = {'x':1,'y':2,'z':3}
  • 以上方法可以结合使用,如下所示:
def test(x,y,*z,**p):
	print(x,y,z,p)

test(1,2,3,4,5,a=1,b=2)
# x=1 y=2 z=(3,4,5) p={'a':1,'b':2}

作用域

  • 我们都知道函数有自己的作用域,可以在函数中用 global 访问全局变量:
  • 用 global 声明参数,或者用 globals()[‘name’] 表示全局变量
x = 1;
def changeGlobal():
	global x
	x = x + 1
changeGlobal(); # x=2

def combine(parameter):
	print(parameter + globals()['parameter'])

parameter = 'Jerry'
combine('Tom')
# 'TomJerry'
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值