Python函数中的参数(必需参数、关键字参数、默认参数和不定长参数)
必需参数是指为了确保函数正确执行,需要明确赋值的参数。例如定义一个打印输入的字符串的函数:
def print_string(str): print(str) return
若调用该函数时不对参数 str 赋值:
print_string()
则 Python 运行时环境将报错,上述代码的运行结果如下所示:
def print_string(str):
print(str)
return
print_string()
Traceback (most recent call last):
File stdin , line 1, in module
print_string()
TypeError: print_string() missing 1 required positional argument: str
关键字参数则是指在传参时指明形参的名称,并为其赋以实参的值,例如下面计算长方形面积的函数:
def Calc_Area(width, height): return width * height print(Calc_Area(height=4, width=3))
上述代码的运行结果如下所示:
def Calc_Area(width, height):
return width * height
print(Calc_Area(height=4, width=3))
12
默认参数是指为函数的参数取一个默认值,当调用函数时可以不传入具有默认值的参数,当执行函数时使用该默认值参与运算。例如为计算长方形面积的函数的 height 参数指定默认值并调用:
def Calc_Area(width, height = 5): return width * height print(Calc_Area(3))
上述代码的运行结果如下所示:
def Calc_Area(width, height = 5):
return width * height
print(Calc_Area(3))
15
有的函数在定义时无法指明所有的参数,或是在调用时传入的参数个数比定义时的多,这就需要用到不定长参数。不定长参数主要有两种传入方式,一种是在参数名称前加星号*,以元组类型导入,用来存放所有未命名的变量参数。例如:
def Multi_Add(arg1, *args): sum = 0 for var in args: sum += var return arg1 + sum print(Multi_Add(1, 2, 3 , 4))
Multi_Add( ) 函数的作用是将输入的参数相加,上述代码的运行结果如下所示:
def Multi_Add(arg1, *args):
sum = 0
for var in args:
sum += var
return arg1 + sum
print(Multi_Add(1, 2, 3 , 4))
10
print(Multi_Add(1, 2, 3 , 4, 5, 6))
21
另一种是在参数名称前加两个星号**,以字典类型导入,用来存放所有命名的变量参数,例如:
def fun(**kwargs): for key, value in kwargs.items(): print( {0} 喜欢 {1} . format (key, value)) fun (我= 猫 , 猫= 盒子 )
上述代码的运行结果如下所示:
def fun(**kwargs):
for key, value in kwargs.items():
print( {0} 喜欢 {1} . format (key, value))
fun (我= 猫 , 猫= 盒子 )
我 喜欢 猫
猫 喜欢 盒子
在 Python 中一切变量都是对象,数字、字符串和元组是不可更改(immutable)的对象,列表、字典等则是可以更改(mutable)的对象。所谓不可更改的意思是改变变量的取值实际上是新生成一个同类型的变量并赋值。
例如,变量赋值 a=1,然后改变其取值 a=2,实际是新生成一个 int 类型的对象 2,再让 a 指向它,而 1 则被丢弃,相当于新生成了 a。所谓可以更改则是真正改变了变量内部的一部分取值。例如,变量赋值 list=[1,2,3],然后改变其取值 list[1]=6,实际上是更改了其元素的值,本身 list 没有变化,只是其内部部分元素的值被修改了。
当不可更改对象作为函数参数时,类似于 C、C++ 等语言中的值传递,传递的只是参数的值,并不会影响该不可更改对象本身。例如:
def changeVar(a): a = 1 b = 2 changeVar(b) print(b)
上述代码的运行结果如下所示:
def changeVar(a):
a = 1
b = 2
changeVar(b)
print(b)
2
当可更改对象作为函数参数时,类似于 C、C++ 等语言中的引用传递,是将该对象本身传过去,在函数体内修改了该对象的内容后,其内部元素的值将被真正修改。例如:
def changeVar2(l): l.append([3, 4]) print ( 函数内取值: , l) return l = [1, 2] changeVar2(l) print ( 函数外取值: , l)
上述代码的运行结果如下所示:
def changeVar2(l):
l.append([3, 4])
print ( 函数内取值: , l)
return
l = [1, 2]
changeVar2(l)
函数内取值: [1, 2, [3, 4]]
print ( 函数外取值: , l)
23760.html
cpython相关文章
- mac pycharm 配置python「建议收藏」
- python转置矩阵函数_对python 矩阵转置transpose的实例讲解
- python十进制转换_Python 进制转换
- python进制转换函数-Python中进制转换函数的使用
- python中sqrt函数用法_Python : sqrt() 函数
- python-sort函数[通俗易懂]
- unboundlocalerror python_Python问题:UnboundLocalError: local variable ‘xxx’ referenced before assignme
- python recvfrom函数详解_recvfrom函数详解
- Python里divmod_python yield函数
- python setattr函数_Python内置函数(53)——setattr
- 【说站】python中filter()的多种筛选
- 【说站】python函数如何指定默认值
- 【说站】python函数的参数是什么
- 【说站】python sorted()函数的参数用法
- 【说站】python中figure()函数画两张图
- Python 竞赛题-02-Python 的函数是否很赖
- python上的表白代码_用Python实现表白代码
- 预备小菜:Python入门之变量与函数
- Python函数用法
- 【Python】字符串 ⑦ ( input 字符串输入 | input 函数自带提示参数 | input 函数接收的变量类型 )
- Python基础语法-函数-函数的返回值
- Python基础语法-函数-函数装饰器-带参数的装饰器
- Python MongoDB Spatial Query详解大数据
- Python中函数的参数传递与可变长参数详解编程语言
- python进阶详解元类及其应用1编程语言
- Python学习:6.python内置函数详解编程语言
- Python函数详解编程语言
- python函数的万能参数详解编程语言
- python获取命令行参数函数
- Python之eval()函数危险性浅析
- Python实现动态添加类的属性或成员函数的解决方法