【4858.com】参数字传送递,python函数调用时传参格局

By admin in 4858.com on 2019年4月8日

岗位参数

python函数调用时传参形式,python函数调用

任务参数 地点参数需与形参1壹对应

def test(a,b) #a,b就是位置参数
    print(a)
    print(b)

test(1,2)

 

  关键字参数 与形参顺序非亲非故

def test(x,y)
    print(x,y)

test(x=2,y=3)

 

职位参数必须在重大字参数在此以前  
**kwargs:把N个关键字参数,转换到字典格式
4858.com 1

1 def test(a,**kwargs)
2     print(a)
3     print(kwargs)
4 test(8,c=1,b=2)

View Code

 

*args:把N个地点参数,转换来元组

def test(a,*args)
  print(a)
  print(args)
test(1,2,3,4,5)

 

地方参数位置参数需与形参壹1对应 def test(a,b) # a,b正是岗位参数 print
(a) print (b)test( 一,贰) 关键字参…

函数

  • ### 地方参数

职位参数需与形参1壹对应


听他们讲任务顺序来传递参数

def test(a,b) #a,b就是位置参数
    print(a)
    print(b)

test(1,2)

 

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b): #a和b为形参
    print(a)
    print(b)
    return 0

test(1,2) #1和2为实参

 

一、介绍

运转结果

【4858.com】参数字传送递,python函数调用时传参格局。 

概念:函数是指将1组语句的集合通过贰个名字(函数名)封装起来,要想举办这几个函数,只需调用其函数名即可。

4858.com 2

首要字参数

特性:

遵照岗位顺序,一赋值给了a,2赋值给了b

与形参顺序非亲非故

  1. 减去重复代码
  2. 使程序变的可扩大
  3. 使程序变得易维护
  • ### 关键字参数
def test(x,y)
    print(x,y)

test(x=2,y=3)

语法定义

依据形参的值来传递参数

 

def func():#函数名
    print("Hello,world")

func() #调用函数
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b):
    print(a)
    print(b)
    return 0

test(b=1,a=2)

职位参数必须在重大字参数在此之前

  

运维结果

 

带参数

4858.com 3

**kwargs:把N个关键字参数,转换到字典格式

def add(a,b):
    c = a+b
    return c #返回函数执行结果
f = add(1,2)

把1一贯赋值给了形参b,把二一向赋值给了形参a

4858.com 44858.com 5

 

  • ### 同时使用地点参数和根本字参数
1 def test(a,**kwargs)
2     print(a)
3     print(kwargs)
4 test(8,c=1,b=2)

二、函数参数 

而且利用地点参数和要紧字参数举行传参的话,地点参数优先于重点字参数

View Code

二.壹形参和实参

岗位参数只可以在重点字参数前边

 

   
形参变量唯有在被调用时才分配内部存款和储蓄器单元,在调用结束时,立时释放所分配的内存单元。由此,形参只在函数内部有效。函数调用停止重返主调用函数后则无法再选拔该形参变量

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b,c):
    print(a)
    print(b)
    print(c)
    return 0

test(3,c=1,b=2)

*args:把N个地点参数,转换来元组

def add(a,b):   # a , b 为形参

运行结果

def test(a,*args)
  print(a)
  print(args)
test(1,2,3,4,5)

 

4858.com 6

 

   
 实参可以是常量、变量、表明式、函数等,无论实参是何体系型的量,在展开函数调用时,它们都不可能不有显明的值,以便把那一个值传送给形参。由此应事先用赋值,输入等措施使参数得到分明值

岗位参数三传给形参a,关键字参数c和b地点顺序没多大关系

f = add(1,2) # 1, 2 实参
  • 4858.com,### 暗中同意参数

  

暗中同意参数能够对其传参数,也得以不传

二.二暗许参数

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b=3):
    print(a)
    print(b)
    return 0

test(1)

 

运营结果

def person_info(name,age,country,sex):
    print("-----个人信息-----")
    print("姓名:",name)
    print("年龄:",age)
    print("国籍:",country)
    print("性别:",sex)

person_info("张三",23,"CN","M")
person_info("李四",24,"CN","F")
person_info("王五",25,"CN","F")
person_info("赵六",26,"CN","M")

4858.com 7

  

从不给b传参数,b的值为默许参数

country这几个参数的值都以CN,1般而言国籍如若大家不填写,暗中同意即是神州,这正是透过暗中认可参数达成的。我们得以把country设置成暗许参数。

设若给b传参数的话,b的值为该参数值

def person_info(name,age,sex,country="CN")
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b=3):
    print(a)
    print(b)
    return 0

test(1,2)

  

运行结果

那样那个参数在调用时,就毫无钦赐了,私下认可正是”CN”,若是钦定的话,便是点名的值。

4858.com 8

 

– 参数组(不定参数)

若果实参和形参的个数未有对上的话,程序会报错,不定参数可以消除那么些题材

不定参数有二种,贰个是*args,还有三个是**kwargs(这七个是经过*和**概念的,前面包车型地铁只是变量名)

兵慌马乱参数要放在形参的最后

  • ### *args

把自由个职位参数转换到元组形式

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(*args):
    print(args)

test(1,2,3,4,5,6,7)
test(*(1,2,3,4,5,6,7)) #结果是一样的

运作结果

4858.com 9

也安装贰个形参

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,*args):
    print(a)
    print(args)

test(1,2,3,4,5,6,7)
test(*(1,2,3,4,5,6,7)) #结果是一样的

运作结果

4858.com 10

把第四个实参赋值给了第二个形参,其余多余的实参被赋给了*args

所以,*args要在形参的尾声,除了**kwargs

  • ### **kwargs

把自由个重大字参数转换来字典方式

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(**kwargs):
    print(kwargs)

test(name='John',age=22,sex='Man')

运行结果

4858.com 11

获取**kwargs中值的法门

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(**kwargs):
    print(kwargs)
    print(kwargs['name'])
    print(kwargs['age'])
    print(kwargs['sex'])

test(name='John',age=22,sex='Man')

运转结果

4858.com 12

给函数也不胫而走地方参数和首要性字参数

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def test(a,b,**kwargs):
    print(kwargs)
    print(a)
    print(b)

test(1,name='John',age=22,sex='Man',b='abc')

运作结果

4858.com 13

第二个岗位参数被赋值给了第七个形参,假诺首要字参数中有与形参对应的,就会把这几个重中之重字参数赋值给那些格局参数,别的形参赋值给**kwargs字典

  • ### *args和**kwargs

    # –– coding:utf-8 –
    author = “MuT6 Sch01aR”

    def test(*args,**kwargs):

    print(args)
    print(kwargs)
    

    test(1,2,3,name=’John’,age=22)

运作结果

4858.com 14

 

二.三重点字参数

貌似意况下,函数传递要根据顺序,不想按顺序能够动用主要字参数,内定参数名,不过最首要字参数必须放在地方参数之后。

def person_info(name, age, gender, country='CN', province='ZJ'):
    print('姓名:', name)
    print('年龄:', age)
    print('性别:', gender)
    print('国籍:', country)
    print('省份:', province)

person_info('bigberg', 20, 'M', province='JS', country='US')


# 两个关键词参数可以交换位置,但是不能放在位置参数前面

  

三、参数组

  1. 非固定地点参数(*args)
  2. 非固定关键字参数(**kwargs)

三.一非固定地点参数

  1.  接收N个地方参数,转换来元组的款型
  2. 定义:

    def test(*args):

    print(args)
    

    test(1,2,3,4,5)

    #输出
    (壹, 二, 叁, 四, 伍) # 参数转换为元组

 假使唯有一个非固定参数:

def test(*args):
    print(args)

test(1)

#输出
(1,)

  

  三.传到列表

def test(*args):
    print(args)

print("1".center(20,'-'))
test()  #空

print("2".center(20,'-'))
test(*[1,2,3,4])   # 参数前面加*,输出的args = tuple([1,2,3,4])

print("3".center(20,'-'))
test([1,2,3,4])   # 参数前面不加* ,则列表被当作单个位置参数

#输出
---------1----------
()
---------2----------
(1, 2, 3, 4)
---------3----------
([1, 2, 3, 4],)

 

  肆.岗位参数和非固定地点参数

def test(a,*args):
    print(a)
    print(args)

print("1".center(20,'-'))
test(1,2,3,4,5)

#输出
---------1----------
1
(2, 3, 4, 5)

  

  五.关键字参数和非固定地点参数

def test(a,*args):
    print(a)
    print(args)

print("1".center(20,'-'))
test(x=1,2,3,4,5)

#输出
 File "G:/python/untitled/study2/parament.py", line 7
    test(x=1,2,3,4,5)
            ^
SyntaxError: positional argument follows keyword argument

位置参数要在关键字参数之后

  

三.二非定点关键字参数

  1. 吧N个根本字参数,转换为字典情势
  2. 定义: 

    def test(**kwargs):

    print(kwargs)
    

    test(name=”bigberg”,sex=”M”)

    输出
    {‘name’: ‘bigberg’, ‘sex’: ‘M’}

  

  三.传来字典  

def test(**kwargs):
    print(kwargs)

test(**{"name":"bigberg","sex":"M"})

#输出
{'name': 'bigberg', 'sex': 'M'}

#传入字典时,一定要加 ** ,否则会报错

  

  四.地方参数和第二字参数

def test(a,**kwargs):
    print(a)
    print(kwargs)

print("1".center(20,'-'))
#只有位置参数
test("bigberg")

print("2".center(20,'-'))
test("bigberg",sex="M",country="CN")

print("3".center(20,'-'))
#只有关键字参数
test(a="bigberg",sex="M",country="CN")

#输出
bigberg
{}    
---------2----------
bigberg
{'sex': 'M', 'country': 'CN'}
---------3----------
bigberg
{'sex': 'M', 'country': 'CN'}

  

  5.职位参数、关键字参数和非固定关键字参数

def test(a,age=20,**kwargs):
    print(a)
    print(age)
    print(kwargs)

print("1".center(20,'-'))
#只有位置参数
test("bigberg")

print("2".center(20,'-'))
#age 传位置参数
test("bigberg",25,sex="M",country="CN")

print("3".center(20,'-'))
#关键字参数,位置在最后没有影响
test(a="bigberg",sex="M",country="CN",age=25)

#输出
---------1----------
bigberg
20
{}
---------2----------
bigberg
25
{'sex': 'M', 'country': 'CN'}
---------3----------
bigberg
25
{'sex': 'M', 'country': 'CN'}

  

  陆.职责参数、关键字参数、非固定地方参数和非固定关键字参数

def test(a,age=20,*args,**kwargs):
    print(a)
    print(age)
    print(args)
    print(kwargs)

test("bigberg",25,1,2,3,4,sex='M',country='CN')

#输出
bigberg
25
(1, 2, 3, 4)
{'country': 'CN', 'sex': 'M'}

  即便age传入的是任重(英文名:rèn zhòng)而道远字参数(age=25)并且在飞固定地点参数在此以前,就会报错

test("bigberg",age=25,1,2,3,4,sex='M',country='CN')

#输出
  File "G:/python/untitled/study2/parament.py", line 8
    test("bigberg",age=25,1,2,3,4,sex='M',country='CN')
                         ^
SyntaxError: positional argument follows keyword argument

  

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有