脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 浅析python参数的知识点

浅析python参数的知识点

2021-04-27 00:51脚本之家 Python

在本文里小编给大家分享的是关于python参数的知识点内容,正在学习的读者们跟着思考下吧。

python之参数,定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”。

1、思考一个问题,如下:

现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?

?
1
2
3
4
5
6
7
8
9
in [8]: def num():
 
 ...:  a=12
 
 ...:  b=23
 
 ...:  c=a+b
 
 ...:  print(c)

 

为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数

浅析python参数的知识点

2、定义带有参数的函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
in [10]: def num1(a):
 
 ....:  print(a)
 
 ....:  in [11]: def num2(a,b):
 
 ....:  c=a+b
 
 ....:  print(c)
 
 ....:  in [12]: def num3(a,b,c):
 
 ....:  d=a+b+c
 
 ....:  print(d)

 

浅析python参数的知识点

3、调用带有参数的函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
in [13]: def num2(a,b):
 
 ....:  c=a+b
 
 ....:  print(c)
 
 ....: 
 
in [14]:
 
in [14]: num2(1,2)
 
3

 

浅析python参数的知识点

4、缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
in [18]: def info(name,age=20):
 
 ....:  print("name:",name)
 
 ....:  print("age:",age)
 
 ....:  in [19]: info(name='zcf')
 
name: zcf
 
age: 20
 
in [20]: info(age=21,name='zcf')
 
name: zcf
 
age: 21

 

浅析python参数的知识点

5、缺省参数之注意:

带有默认值的参数一定要位于参数列表的最后面。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
in [21]: def info(name,age=20,sex):
 
 ....:  print(name)
 
 ....: 
 
 file "<ipython-input-21-099520322ee2>", line 1
 
 def info(name,age=20,sex):
 
   ^
 
syntaxerror: non-default argument follows default argument

 

浅析python参数的知识点

6、不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名。

语法:

?
1
2
3
4
5
def functionname([formal_args,] *args,**kwargs):
 
  function_suite
 
  return [expression]

 

加入星号(*)的变量args会存放所有未命名的变量参数,args为元组;

而加**的变量kwargs 会存放命名参数,即形如key=value的参数,kwargs为字典

浅析python参数的知识点

浅析python参数的知识点

浅析python参数的知识点

7、

 
引用传参可变类型与不可变类型的变量分别作为函数参数时,会有什么不同吗?python有没有类似c语言中的指针传参呢?python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。
 
引用传参可变类型与不可变类型的变量分别作为函数参数时,会有什么不同吗?python有没有类似c语言中的指针传参呢?

 

以上内容就是关于python参数相关的知识点内容,感谢大家对服务器之家的支持。

延伸 · 阅读

精彩推荐