Python函数

函数

 

1、函数的定义   --- 类似scala 

         def fun(参数1,参数2....):

                   函数体内容

                  

defmessage(msg):

         print(msg)       

 

def fun1():

         pass //相当于占位,构成语法    

                  

2、函数可以有多个返回值 (类似scala)                

                  

                  

def fun1():

    return (22, 'hello', 26)  //可以省略括号,加上可以增加代码的可读性

 

print(fun1())  //函数返回的多个值会自动封装到一个元组中  

                                    

a, b, c =fun1() //将返回的三元元组元素取出分别赋值给三个变量

print(a, b, c)             

                  

                  

3、  一个函数的返回值可以是另一个函数  (类似scala)  

                  

                  

defhandleInt():

    print('int.......')

 

defhandleStr():

    print('str.......')

 

defchooseFun(x):

    if int == type(x):

        return handleInt

    elif str == type(x):

        return handleStr

    else:

        return None

 

chooseFun(22)()                

        

        

4、可以将一个函数作为一个参数传递给另外一个函数  

                   scala中称作高级函数

        

        

def funSum(a,b, f):

    print(f(a) + f(b))

 

def fun1(x,y):

    return x * y

 

funSum(2, 5,fun1) 

 

 

funSum(2, -9,abs)  //使用python内置的函数 ,abs是求绝对值的函数 

 

5、python中函数的参数 

         python的函数的参数没有类型,python不会对参数的类型进行检查 

        

         java中定义的方法如何方法名相同但是参数类型和个数不同--重载 

                   python中不支持函数的重载 

                            python不检查参数的类型,所以不存在不同参数的类型的重载情况

                            python中如果出现多个同名函数,并且参数的个数不同,则后面的函数会覆盖前面的函数

                  

案例:                                                         

def fun1():

    print('fun1....')

 

def fun1(x):

    print('fun1...x')

 

fun1(3)    

        

 

        

         python中的函数具有灵活多样的参数样式,可以实现函数简单的定义和调用 

                            参数样式种类:(重点!)

                                     位置参数 

                                     默认参数                                           

                                     可变长参数

                                               *args

                                               java也有 

                                     关键字参数

                                               **kwargs

                                     命名关键字参数    

                                              

                                     参数组合                                                                                

                                               deffun(*args, **kwargs  )    //参数统配 !!!                     

        

 

6、函数变量的作用域 

                  

案例一:        

x = 5  //全局变量  

 

def fun():

    x = 3 //函数内部变量

    print('inner x=',x)

fun() //结果是3,调用变量值时优先取内部变量的值 

 

案例二:

x = 5

 

def fun():

    print('inner x=', x)

fun() //结果 5

        

案例三:

 

x = 5

 

def fun():

    x += 2 //在函数局部不可以对全局变量进行操作

    print('inner x=', x)

 

fun()

        

        

x = 5

def fun():

    global x //先声明x为全局变量

    x += 2

    print('inner x=', x)

 

fun()

        

 

7、函数的嵌套和装饰器

        

                  

函数的嵌套(同scala)

         在函数中定义另一个函数 

        

                  

def fun1():

    def fun2():

        pass

    return fun2               

                

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值