码迷,mamicode.com
首页 > 其他好文 > 详细

学习总结2019.3.29

时间:2019-03-29 18:58:20      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:分割   def   class   位置   取值   col   order   位置实参   add   

函数的参数

形参:定义函数()中出现的变量名,用来接收外界传来的值
# 注:形参随着函数的调用才产生,随着函数调用结束而销毁
?
实参:函数调用()中传入的实际值,值可以是常量,变量,表达式或者三者的组合
?
‘‘‘
def fn(形参):
    pass
fn(实参)  
‘‘‘

实参分类

def fn1(a,b,c):
    print(a,b,c)
?
# 位置实参:按照位置的顺序,从左到右为形参传递值
fn1(10,20,30)
fn1(30,20,10)
?
# 关键字实参:可以不按顺序传递,形参按名字取值
fn1(a = 10,b = 20, c = 30)
fn1(c = 30,b = 20,a = 10 )
?
# 两者混用:   *****
# 关键字实参必须出现在位置实参之后,
# 多个位置实参还是按位置传参,
# 关键字实参为 没有从位置实参拿到值的形参 传值,可以不用按位置传值
fn1(10,c = 30,a = 20) # 10按位置传给a,a = 20给a传参,c = 20传给c
# 合法传参
fn1(10,b = 20,c = 30)
fn1(10,c = 20,b = 30)

形参分类

  • 位置形参

位置形参:
def fn(a,b,c):
    print(a,b,c)
位置形参可以由 位置实参 与关键字实参 传值
fn(10,20,30)
fn(a = 10,b = 20,c = 30)
  • 默认形参

默认形参:具有默认值,用=赋值
def fn(a = 10,b = 20):
    print(a,b)
位置形参可以由 位置实参 与关键字实参 传值,还可以不用传值(采用自身默认值)
fn(20,30)
fn(a = 200,b = 300)
fn(100)   #就给a传值
fn(b = 100)    #就给b传值
?
位置形参与默认形参同时存在,默认形参必须在后
def fn(a,b,c = 10,d = 20):
    print(a,b,c,d)
?
位置形参必须传值,默认形参分情况传值
fn(100,200,d = 1000)
  • 可变长位置形参

变长位置形参
可变长形参只能由 位置参数 传值
def fn(a,b = 10,*args):
    print(a,b,args)
?
可变长形参会以元组形式接收 位置形参与默认形参未接受完的 所有传入的位置实参,用索引取值
注意:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,导致默认形参必须以位置实参传值
fn(100,200,300)
  • 关键字形参

关键字形参    必须由关键字实参传值
*为分割线,可以有变量名*args,也可以用来做分隔
?
# 1、可变位置形参以元组方式接收值
# 如:接收10,20,30三个数
def fn1(*args):
    print(args)  # (10, 20, 30)
    
# 第一种传参
fn1(10, 20, 30)
?
# 第二种传参
t = (10, 20, 30)  # 单列集合及字符串类型都可以
fn1(*t)
  • 可变长关键字形参

可变长关键字形参:用来接收没有被关键字形参未接受完的关键字实参
def fn(*,a,b = 20,c,**kwargs):
    print(a,b,kwargs)
?
fn(a = 10,b = 50,c = 50,d = 0,f = asd)
?
def fn2(**kwargs):
    print(kwargs)  # {name: Owen, age: 18}
# 第一种传参
fn2(name=Owen, age=18)
?
# 第二种传参
d = {name: Owen, age: 18}  # 单列集合及字符串类型都可以
fn2(**d)

参数总结

def fn(a,b,c = 10,d = 30,*args,e,f,**kwargs):
    print(a,b,c,d,args,e,f,kwargs)
fn(1,2,3,4,5,6,7,8,9,e = 10,f = 20,g = 30, h = 40)
?
# 总结:
# 位置形参:可由 位置实参及关键字实参 传值
# 默认形参:可由 位置实参及关键字实参 传值,也可不传值
# 可变长位置形参:接收 位置形参及默认形参未接收完的 位置实参,若可变长位置形参要传入值,则其前面参数都必须是位置形参
# 关键字形参:只能由关键字实参传值
# 可变长关键字形参:接收关键字形参未接收完的关键字实参

?

学习总结2019.3.29

标签:分割   def   class   位置   取值   col   order   位置实参   add   

原文地址:https://www.cnblogs.com/penghengshan/p/10623069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!