51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2668|回复: 1
打印 上一主题 下一主题

[python] python的作用域

[复制链接]
  • TA的每日心情
    无聊
    前天 09:11
  • 签到天数: 406 天

    连续签到: 3 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-17 15:49:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 测试积点老人 于 2018-12-17 15:51 编辑

    1、块级作用域

    和Java、C甚至JS等大多数编程语言不同,python中并没有块级作用域,代码块中声明的变量可以自由地在代码块外访问。因为python没有“空的”声明语句,变量第一次出现的时候就必须赋值,在使用代码块时,如果必须在代码块内才能访问变量,将变得无法正常编写。如:


    1. if True:
    2.     name = "cai"
    3. else:
    4.     name = "No cai"
    5. # 如果在大多数其他语言中,name无法访问
    6. # 但是在python中可以访问代码块中创建的对象
    7. print(name)
    复制代码

    2、局部(local)作用域

    python中虽然没有块级作用域,但是有“局部作用域”,即一个方法内部定义的变量。

    和其他编程语言相同,python中方法内部定义的变量仅限于方法内部使用。如:


    1. def method():
    2.     name = "cai"

    3. # 方法外无法访问方法内部的变量。
    4. # 这里IDE会以红线警告,运行报NameError
    5. print(name)
    复制代码

    3、Enclosing作用域

    Enclosing作用域包含所有的非全局、非局部的变量。比如两个嵌套函数之前的变量。

    和其他编程语言相同,内部函数可以访问外部函数的变量,而外部函数无法访问内部函数的变量。


    4、Global作用域

    即当前脚本最外层的作用域。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-2 05:49 , Processed in 0.062754 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表