关键字参数
"""
关键字参数。
作用:还是相对于位置参数讲的。
可以提高函数调用时候的可读性,更加容易理解实际参数的意义。
关键字的名字==> 形式参数
关键字参数区别位置参数: 可以不按照顺序进行调用,可以交换顺序。
TODO: 关键字参数也要放到位置参数的后面。
函数:一定要掌握的知识:
return
函数的形式参数
函数的实际参数
函数的位置参数
默认参数:简化调用过程
关键字参数:可以交换参数的顺序,并且提高可读性
"""
def get_name(firstname, middle, lastname=""):
"""获取名字"""
return firstname + middle + lastname
a = get_name('丁', lastname='几何', middle='高颜值')
print(a) ===>打印结果:丁高颜值几何
**
可变长参数
**
"""
可变长参数:
*names, 在函数内部的表现形式:names 是元组。
可以接收从函数调用的时候,多余的位置参数.
*names 加在其他的位置参数的后面。
可不可以只有一个 *names, 可以的。
**kwargs, keyword args
"""
实例1:
#有多个*name
def get_name(firstname, *names ):
"""获取名字"""
print(firstname)
print(names)
return firstname
get_name('dingj', '25', '高颜值') ===>打印结果:dingj ('25', '高颜值')
实例2:
# 可不可以只有一个 *names, 可以的。
def get_name(*names ):
"""获取名字"""
print(names)
return names
get_name('dingj', '25', '高颜值')
**
函数之间的调用
**
实例:
def congratulate_offer(offer_name, money):
"""庆祝拿到 offer """
print("{}拿到了一个{}k 的 offer.".format(offer_name, money))
# 请客
eat(offer_name, '小龙虾')
def eat(name, food):
print("{}喜欢吃食物:{}".format(name, food))
congratulate_offer('小王子', 22)
"""
打印结果:
小王子拿到了一个22k 的 offer.
小王子喜欢吃食物:小龙虾
"""
**
函数的作用域
**
1. 局部变量:函数体这个局部, 函数是一个盒子
2. 全局变量不能获取局部变量
3. 局部作用于能获取全局变量
实例1:
def add(a, b):
c = a + b
c += 5
return c
c = 4
add(5,7)
print(c) ===>打印结果:4
-----------------------------------------------------------------------------------------------
#局部作用于能获取全局变量
c = 10
def add(a, b):
return c + a + b
print(add(2,3)) ===>打印结果:15
如果想修改全局变量,需在局部变量加global表明这是一个全局变量
global关键字声明全局变量的关键字,不要轻易使用
实例1:
c = 3
def add(a, b):
global c
c = c + 3
print(c)
return a + b + c
add(3, 4)
print("最后的c:", c) ===>打印结果:6