pythpn的函数知识要点

本文主要介绍Python函数相关知识。涵盖函数的定义与调用,阐述了位置、默认、可变、关键字等不同参数类型,说明了函数返回值和变量作用域,还重点讲解了函数装饰器,包括其定义、作用,并通过多个练习展示了装饰器的使用,如语法糖的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义函数
def 函数名():
    内容
def 函数名(形参1,形参2,...):
    内容
*如果不主动调用函数,函数不会执行

 

2.函数的调用
函数名()
函数名(实参1,实参2,...)

 

3.函数里面注释
"""    """

4.参数
形参:
(1)位置参数:形参和实参个数必须保持一致
def hh(name,age):
    print name,age
hh(age = 12,name = 'hh')


(2)默认参数:形参和实参的个数可以不一致,可以改变
def mypow(x,y=2):   
    print pow(x,y)
mypow(7,2)
mypow(2)
当实参值只有一个时,默认为x的2次方,当实参为2个时,默认值无效!


(3)可变参数:形参个数不确定
*args :args是元组数据类型,名字可变,一般用args
   def mysum(*args):
      print args
      sum = 0
      for item in args:
          sum += item
      print sum
   mysum(1,2,3,4)
*nums:解包 对列表,集合,元组解包只需要在变量名前加*
   def mysum(*args):
       print args
       sum = 0
       for item in args:
           sum += item
       print sum
   nums = [1,2,3,4,5,6]
   mysum(*nums)


(4)关键字参数:**kwargs :是一个字典可以传递任意多个key-value
def guan(**kwargs):
    print kwargs
guan(name=['westos'], age=18, hobbies=['code', 'running'])

5.函数的返回值
函数运算的结果,还需要进一步操作时,用return返回值
如果没有返回值,默认为none
python可以间接返回多个值,形成元组
用一个参数接收,形成元组
两个参数接收,单个数据
一旦遇到return 函数执行结束

 

6.函数变量的作用域
(1)局部变量
在函数内定义的普通变量,只在函数内部作用,函数执行结束,变量自动删除
a = 1
def han():
    #global a
    a = 5
    print 'in',a,id(a)
han()
print 'out',a,id(a)
print a,id(a)

(2)全局变量
global a 声明全局变量
s = random.random()  随机产生0~1之间的数

 

7.函数的装饰器
(1)定义:把一个函数作为参数,返回一个替代版的函数
(2)作用:在不改变原函数的基础上,给函数增加功能
练习1:
def fun1():   函数1
    print 'have a nice day!'
def fun2():   函数2
    print 'happy'
def outer(fun):   函数装饰器
    def inner():
        print '******'
        fun1()
        print '******'
    return inner
fun = outer(fun1) 
fun()
练习2:
def say(age):
    print 'man is %d years old'%age
def outer(fun):
    def inner(age):
        if age < 0:
            age = 0
        fun(age)
    return inner
say = outer(say)
say(-10)
例子3:语法糖
def desc(fun):
    def inner():
        print 'happy'
        fun()
        print '***'
    return inner

@desc   #需要给哪个函数加装饰器,就给那个函数前加此语句
def login():
    print 'login'

login()  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值