zoukankan      html  css  js  c++  java
  • python第十课

    #函数进阶
    # a=1
    # def func():
    # print(a)
    # func()
    #命名空间和作用域

    #命名空间有三种
    #内置命名空间--python解释器
    #就是python解释器一启动就可以使用的名字存储在内置命名空间中
    #内置的名字在启动解释器的时侯被加载进内存里
    #全局命名空间--我们写的代码但不是函数中的代码
    #是在程序从上到下被执行的过程中依次加载进内存的
    #放置了我们设置的所有变量名和函数名
    #局部命名空间--函数
    #就是函数内部定义的名字
    #当调用函数的时侯,才会产生这个名称空间,随着函数执行的结束,这个命名空间就又消失了

    #在局部:可以使用全局,内置命名空间中的名字
    #在全局:可以使用内置命名空间中的名字,但是不能用局部中使用
    #在内置:不能使用局部和全局的名字

    # def max(l):
    # print('in max func')
    #
    # print(max([1,2,3]))
    #在正常情况下,直接使用内置的名字
    #当我们在全局定义了和内置名字空间中同名的名字时,会使用全局的名字
    #当我自已有的时侯,我就不找我上级要了
    #如果自已没有,就找上一级要,上一级没有再找上一级,如果内置的名字空间都没有,就报错
    #多个函数应该拥有多个独立的局部名字空间,不互相共享
    # def max():
    # print('in max func')

    # def func():
    # # input=1
    # print(input)

    #func -->函数的内存地址
    #函数名() 函数的调用
    #函数的内存地址() 函数的调用

    #作用域两种
    #全局作用域--作用在全局--内置和全局中的名字都属于全局作用域--globals()
    #局部作用域--作用在局部--函数(局部名字空间中的名字属于局部作用域)--locals()
    # a=1
    # def func():
    # global a
    # a = 2
    # func()
    # print(a)

    #对于不可变数据类型 在局部可是查看全局作用域中的变量
    #但是不能直接修改
    #如果想要修改,需要要程序的一开始添加global声明
    #如果一个局部(函数)内声明了一个global变量,那么这个变量在局部的所有操作将对全局的变时有效
    # a=1
    # b=2
    # def func():
    # x='aaa'
    # y='bbb'
    # print(locals())
    # # func()
    # print(globals())
    # print(locals()) #本地的
    #globals 永远打印全局名字
    #locals 输出什么 根据locals所在的位置
    #
    # 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))

    #函数的嵌套定义
    #内部函数可以使用外部函数的变量
    # a=1
    # def outer():
    # a=1
    # def inner():
    # b=2
    # print(a)
    # print('inner')
    # def innert2():
    # #global a #声明了一个全局变量
    # nonlocal a #声明了一个上面第一层局部变量
    # a += 1 #不可变数据类型的修改
    # print('innert2')
    # innert2()
    # print('##a## : ',a)
    # inner()
    # print('**a** : ',a)
    # outer()
    # print('全局 : ',a )
    #nonlocal 只能用于局部变量 找上层中离当前函数最近一层的局部变量
    #声明了nonlocal的内部函数的变量修改会影响到离当前最过一层的局部变量
    #对全局无效
    #对局部也只是对最近的一层有影响
    # a=0
    # def outer():
    # #a=1
    # def innter():
    # #a = 2
    # def inner2():
    # nonlocal a
    # print(a)
    # inner2()
    # innter()
    # outer()

    # def func():
    # print(123)

    #func() #函数名就是内存地址
    # func2 = func #函数名可以赋值

    #闭包:嵌套函数,内部函数调用外部函数的变量
    # def outer():
    # a=1
    # def inner():
    # print(a)
    # print(inner.__closure__)
    # outer()

    # def outer():
    # a=1
    # def inner():
    # print(a)
    # return inner
    # inn = outer()
    # inn()

    #import urllib #模块
    from urllib.request import urlopen
    # ret=urlopen('http://www.xiaohua100.cn').read()
    # print(ret)

    def get_url():
    ret=urlopen('http://www.xiaohua100.cn').read()
    print(ret)

    get_url()
  • 相关阅读:
    仿网易/QQ空间视频列表滚动连播炫酷效果
    UIScrollerView当前显示3张图
    iOS AVPlayer视频播放器
    iOS 购物车动画
    C++从零实现简单深度神经网络(基于OpenCV)
    Android 轻松实现仿淘宝地区选择
    微信小程序之下拉刷新,上拉更多列表实现
    iOS 指南针
    tableView 获取网络图片,并且设置为圆角(优化,fps)
    黑客技术 —— Linux 命令行
  • 原文地址:https://www.cnblogs.com/huangjianfeng/p/11285796.html
Copyright © 2011-2022 走看看