zoukankan      html  css  js  c++  java
  • 16 命名空间和作用域

    #内置的命名空间  就是python解释器一启动就可以使用的名字存贮在内置命名空间中
    # print(),input(),list,tuple,等等
    #全局的会命名空间
    #局部的命名空间
    a = 1
    def func():
        global a    #声明后就可以修改全局的 a ,将会影响全局的 a  应尽量不使用,因为不安全
        a += 1
    func()
    print(a)        #2
    #求最大值函数  函数的嵌套
    def max(a,b):
        return a if a>b else b
    
    def the_max(x,y,z):
        c = max(x,y)
        return max(c,z)
    
    print(the_max(1,2,3))       #3
    #函数的嵌套定义和作用域链
    a = 5
    def outer():
        a = 1
        def inner():
            b = 4
            print(a)             #1
            print('inner')      #inner
            def inner2():
                nonlocal a      #声明上面第一层的局部变量 a 可以修改,对全局变量无效
                a += 1
                print(a,b)       #2 4
                print('inner2') #inner2
            inner2()
        inner()
        print('局部 a:',a)      #局部 a: 2
    outer()
    print('全局 a:',a)          #全局 a: 5
    def func():
        print(123)
    
    func2 = func    #函数名可以赋值
    func2()         #123
    
    l = [func,func2]    #函数名可以做为容器类型的元素
    for i in l:
        i()         #123
                    #123
    def func():
        print(123)
    
    def wahaha(f):
        f()
        return f                #函数名可以作为函数的返回值
    
    qqxing = wahaha(func)        #函数名可以作为函数的参数      123
    qqxing()                     #123
    #闭包     是一个嵌套的函数,且内部函数调用外部函数的变量
    def outer():
        a = 1
        def inner():
            print(a)
    #        print(inner.__closure__)
        return inner
    inn = outer()       #返回了内部闭包的函数地址
    inn()               #运行内部的函数
    #闭包的应用例程
    #import urllib       #调用模块
    from urllib.request import urlopen
    # ret = urlopen('https://home.cnblogs.com/u/bydzxzy/').read()
    # print(ret)
    def get_url():
        url = 'https://home.cnblogs.com/u/bydzxzy/'
        def get():
            ret = urlopen(url).read()   #爬取了网页的原码
            print(ret)
        return get
    get_func = get_url()
    get_func()
  • 相关阅读:
    C++强制类型转换操作符 const_cast
    URL的UTF-8 decode
    react-8 路由
    react-7 条件渲染与列表渲染
    react-6 react 生命周期
    react-5 受控组件,非受控组件与高阶函数
    react-4 react 组件的三大属性
    react-3 JSX 语法
    react-2 react环境搭建
    react-1 React
  • 原文地址:https://www.cnblogs.com/bydzxzy/p/9649320.html
Copyright © 2011-2022 走看看