当前位置:   article > 正文

Python基础学习:关键字def_python def

python def

关键字def是用来定义方法(即函数)

1.应用格式

def 函数名(参数1,参数2,…)#参数1,参数2等为形参

       执行语句

  1. def test(a,b):
  2. pass #占位,可以用方法实现的具体操作代替

2.方法的调用

  1. def test(a,b):
  2. print(a +' '+ b)
  3. test('1','2')

方法调用时一定要向方法传递符合要求的参数(属性),方法才能被正确执行。

3.方法的参数传递方法

(1)相对位置参数传递

如2中所示,将要传递的参数值与对应的形参位置匹配

  1. def test(a,b): #参数a,b为形参
  2. print(a +' '+ b)
  3. test('1','2') #输入进去的字符1与字符2为实参,实参可以是字符、数字、变量、字典、数组、元组等函数支持的数据

(2)绝对位置(或关键字)参数传递

  1. def test(a,b):
  2. print(a +' '+ b)
  3. test(b = '1',a = '2')

与上文程序相比,参数的传递就与相对位置无关,而与传递对象有关

(3)参数默认值

  1. def add(a,b,c=3):
  2. print(str(a+b+c))
  3. add(1,2,3)

这样,默认参数就可以被直接使用

但是,如果这样去设置默认参数,编译器就会报错:

  1. def add(a=1,b,c=3):
  2. print(str(a+b+c))
  3. add(1,2,3)

因此,默认参数应该被放置于所有参数的后列

(4)包裹(可增长参数)传递

包裹传递可以用来向方法传递不定长度的数组或者字典,以便于随时扩展同类型数据的处理容量。一般来说,在方法体内应当用for循环对其进行分解处理。

①传递数组

  1. def func(*num):
  2. for i in num:
  3. print (str(i))
  4. func(1,4,6)

也可以这样传递:

  1. def func(*num):
  2. for i in num:
  3. print (str(i))
  4. a =[1,4,6]
  5. func(a)


也可以通过解析:

  1. def func(*num):
  2. for i in num:
  3. print (str(i))
  4. a = (1,4,6)
  5. func(*a)

②传递字典

  1. def make_car(**parameters):
  2. for k,v in parameters.items():
  3. print(k + ' : '+ v)
  4. make_car( color = 'yellow',
  5. choose_form = 'GPS'
  6. )

而下列代码的操作会导致索引错误:

  1. def make_car(**parameters):
  2. for k,v in parameters.items():
  3. print(k + v)
  4. car_1 = {'color' : 'yellow','choose_form' : 'GPS'}
  5. make_car(car_1)

将错误代码修改一下,就又可以运行了:

  1. def make_car(**parameters):
  2. for k,v in parameters.items():
  3. print(k + v)
  4. car_1 = {'color' : 'yellow','choose_form' : 'GPS'}
  5. make_car(**car_1)


在参数调用处给传入字典添加**代表着解析字典,这样python解释器就知道该如何操作这个数据了。

4,.方法对传入参数的操作(是否修改传入参数的本体)

Python方法的参数传递时,值得注意的是,传入参数为变量是会被临时赋值给参数变量,如果传入参数是对象则会被引用。临时赋值不改变本体数据,而引用会改变本体数据。当然如果数据被gobal定义为全局数据,那它在任何地方的操作都会改变其所引用的数据。

  1. def test(p1,p2):
  2. p1 = 10
  3. p2.append('hello')
  4. a = 20
  5. b = []
  6. test(a,b)
  7. print(a)
  8. for v in b:
  9. print(v)

为什么会出现这种情况,这就涉及到python中数据的存储问题。这将在数据现象中讲解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/54666
推荐阅读
相关标签
  

闽ICP备14008679号