Python中的函数

函数定义形式:

def funName(arg...):
      CodeBlock
      return  xx;
#如果函数暂时不做任何操作,需要这样写:
def funName(arg....):
      pass;           #此处不能够留空

默认参数:

  • 从右向左使用默认参数
  • 默认参数指向对象不会变化
  • 定义默认参数要牢记一点:默认参数必须指向不变对象!
def printList(L =[]):
    L.append("END");
#对于上述函数,L指向一个不变List对象
printList() ; # END
printList();  # END END

请注意下述情况:

def fun(name,arg = None):
    if arg == None;
       arg = [];
    arg.append('END');
    print(arg);
#对于任意一次调用只有一个'END'被添加到arg中
#None是不可变对象,每次构造[]都将使arg指向不同的List对象

可变参数:

  • 函数参数名前面加*就构成可变参数了
  • 可变参数变量实际上是是一个tuple
  • 传递List tuple set变量时,使用*varName即可一次传递进去
def  func(*nums):
      pass;
 func(1,2,3);
 func(1,2);
 list = [1,2,3];
 func(*list);

关键字参数:

  • 函数参数名前缀**
  • 关键字参数函数内部传递为dict
  • dict变量可以前缀**一次传递进去
def func(**info):
      psss;
func(job = 'Engginer', arg = 15);
d = {'name':'lx','arg'=18};
func(**d);

命名关键字参数:

  • 如果没有可变参数,用*分隔位置参数和关键字参数
def per1(name,arg,*,job,city): 
      pass;
#只能接收以job city命名的关键字参数
  • 如果有可变参数,可变参数后面就是关键字参数
#只能接收以job city命名的关键字参数
def per2(name,arg,*num,job,city):
    pass;

小结:

  • 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
  • 对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的
  • 不要将五种参数多个组合,以免降低接口可读性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值