Python函数简要知识

Python函数

1.不定长参数:一个函数能够处理比声明时更多的参数,这些参数叫做不定长参数。

def printinfo(arg1,*vartuple):   #加了星号的变量名所代表的变量会存放所有的未命名变量参数
    print(arg1)
    for var in vartuple:
        print(var)
    return
printinfo(10)             
printinfo(70,60)

#运行结果为
#10
#70
#60

2.匿名函数:不再使用def语句定义的函数。

使用lambda来创建匿名函数。lambda只是一个表达式,不是代码块。在lambda表达式中仅仅能封装有限的逻辑。lambda函数拥有自己的命名空间,且 不能访问自己参数列表之外或全局命名空间。匿名函数相当于赋值给sum,用type函数查看,sum为function。

sum=lambda arg1,arg2:arg1+arg2
print("相加之后的值为:",sum(10,20))
#输出结果为:相加之后的值为:30

  变量作用域

在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。

Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

1.作用域范围。python的变量作用域一共四种:

  • L(Local):局部作用域
  • E(Enclosing):闭包函数外的函数中
  • G(Gloria):全局作用域
  • B(Built-in):内建作用域

规则顺序: L –> E –> G –> B

g_count = 0  # 全局作用域
def outer():
    o_count = 1  # 闭包函数外的函数中
    def inner():
        i_count = 2  # 局部作用域

内置作用域是通过一个名为 builtin 的标准模块来实现的,但是这个变量名自身并没有放入内置作用域内,所以必须导入这个文件才能够使用它。在Python3.0中,可以使用以下的代码来查看到底预定义了哪些变量。

Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这些语句内定义的变量,外部也可以访问。

2.global和nonlocal关键字

当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。global可以把内部变量修改为全局变量,nonlocal可以把内部变量修改为闭包函数外的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值