【python地图】基础5自定义函数

# -*- coding: utf-8 -*-
# author:xiaoming time:2019/6/13

# 一、函数的作用域

# 1.local,局部作用域(L)
# 2.enclosing,父级函数的局部作用域(E)
# 3.globa,全局变量(G)
# 4.build-in,系统模块(B)
# 优先级顺序为:局部作用域(L)>父级函数作用域(E)>全局作用域(G)>系统模块(B)

var = 'xieyc'

def take_name():
    var = 'xyc'
    print('var1:',var)
    def get_name():
        var = 'x'
        print('var2:',var)
    get_name()
take_name()
print('var3:',var)

# 二、global 和 nonlocal 的作用域

# 1.global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字
gcount = 0

def global_test():
    # gcount += 1
    print (gcount)
global_test()

# 2.声明全局变量,如果在局部要对全局变量修改,需要在局部也要先声明该全局变量
gcount = 0

def global_test():
    global gcount
    gcount += 1
    print(gcount)
global_test()

# 3.nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量
def make_counter():
    count = 0
    def counter():
        nonlocal count
        count += 1
        return count
    return counter
c = make_counter()
print(c())
print(c())
print(c())

# 三、函数返回值
# return [表达式] 结束函数,选择性地返回值给调用方。不带表达式的return相当于返回 None。
# 返回值可以是所有对象

# 四、函数参数
# 1.必需参数(位置参数)
def fun1(a, b):
    pass

# 2.关键字参数
fun1(b=1, a=2)

# 3.默认参数
def fun3(c, d=1):
    pass

# 4.不定长参数(可变参数)
def fun4(*args, **kwargs):
    pass
# *args         以元组(tuple)的形式导入
# **kwargs      以字典的形式导入

# 五、匿名函数
# python 使用 lambda 来创建匿名函数  表达式
# 语法:lambda [arg1 [,arg2,.....argn]]:expression
y = lambda x:x * x
print(y(3))
# 1、匿名函数不需要特意去定义一个函数名,可能这个函数只是某个地方临时用一下,后面就不会再用了
# 2、匿名函数一般都是和其他方法搭配使用,使得代码更加简洁
list1 = [{"name": "xixi", "age": "11"}, {"name": "hehe", "age": "12"}, {"name": "haha", "age": "13"}]
list1.sort(key=lambda x: x['name'])
print(list1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值