python语言篇(8练习3)

# 此示例示意函数作为参数传递
def f1():
    print("f1函数被调用")


def f2():
    print("f2函数被调用")


def fx(fn):
    print("fn绑定的函数是:", fn)
    # 在fx内调用fn绑定的函数
    fn()


fx(f1)  # 调用fx,把f1作为实参传数
fx(f2)  # 用fx间接调用f2

# 此示例示意函数的嵌套定义 
def get_func(value):
    if value == 1:
        def myadd(x, y):
            return x + y
        return myadd
    elif value == 2:
        def mysub(x, y):
            return x - y
        return mysub


fx = get_func(1)
print(fx(400, 300))  # 700
fx = get_func(2)
print(fx(400, 300))  # 100
 

# global_local_variable.py


# 此示例用来说明全局变量和局部变量的作用域范围及生命周期
a = 100
b = 200

def fn(c):
    d = 400
    # print(a, b, c, d)  # 有错,此时a变量还不存在
    a = 500  # 用来创建一个局部变量,
    print(a, b, c, d)  # 500, 200, 300, 400

fn(300)
print('a =', a)  # 100
print('b =', b)
 

# global_statement.py


# 以下示例示意global语句的用法
v = 100


def fx():
    global v  # 声明v为全局变量,不是局部变量
    v = 200  # 想修改全局的v怎么办?


fx()
print(v)  # 200


# 4. global变量列表里的变量名不能出现在此作用域内的形参列表里
def f1(v):
    global v
    print(v)


f1(300)

猜你喜欢

转载自blog.csdn.net/Jason_Edison/article/details/88891377