zoukankan      html  css  js  c++  java
  • 4_函数

    1. 参数重载

           1.1 参数重载的第一种情况:默认参数重载,将默认参数放在参数列表的最后,并且一定要保证默认参数指向的是不变对象。下面是指向可变对象和不变对象的例子:

    def add_end1(L=[]):
    	L.append('end')
    	return L
    
    def add_end2(L=None):
    	L.append('end')
    	return L
    	
    >>>add_end1()
    ['end']
    >>>add_end1()
    ['end','end']
    
    
    >>>add_end2()
    ['end']
    >>>add_end2()
    ['end']
    

           1.2 参数重载的第二种情况:可变参数数目重载,在参数前添加一个*号即可:

    def calc(*number):
    	sum=0
    	for n in number:
    		sum+=n*n
    	return sum
    ##这样既可以把列表和元组传进去,也可以手动输入多个不确定数目的参数
    
    

           1.3 参数重载的第三种情况:关键字参数和命名关键字参数

    ##二者一般都用于字典中
    def person1(name,age,**kw):
    	print()
    
    ##可变参数后面的命名关键字参数不需要*分隔符
    def person2(name,age,*args,city,job):
    	print()
    	
    ##命名关键字参数的传入必须要传入参数的名字
    def person3(name,age,*,city,job):
    	print()
    

    2. Tips

           2.1 函数返回多个值实际上是返回一个元组

           2.2 input()函数默认接受为字符串类型,需要使用强制转换函数

           2.3 range()函数返回的是一个整数可迭代对象,并不是真正意义上的列表类型。默认必须参数为stop。range(start,stop,step),左开右闭

           2.4 不返回值的函数称为过程

           2.5 定义函数时,由于不像C语言那样对参数类型的定义有严格限制,所以如果有必要,需要对参数类型写语句做一个检查,防止出错时编译器不能提供准确的定位。

    def my_abs(x):
    	if not isinstance(x,(int,float)):			##类型检查语句
    		raise TypeError('bad operand type')
    	if(x>0):
    		return x
    	else:
    		return -x
    
  • 相关阅读:
    02 _ 该如何选择消息队列
    封装、抽象、继承、多态分别可以解决哪些编程问题?
    04 _ 理论一:当谈论面向对象的时候,我们到底在谈论什么?
    03 _ 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
    接口使用
    结构体和方法
    通道的高级玩法
    通道的基本操作
    极客时间 mp3提取
    iOS多线程中的单例
  • 原文地址:https://www.cnblogs.com/machine-lyc/p/10635841.html
Copyright © 2011-2022 走看看