首页 > 编程语言 >PYTHON 变量

PYTHON 变量

时间:2022-11-27 20:01:30浏览次数:39  
标签:outer 变量 PYTHON 作用域 fun def 函数

1.1 变量

一般编译语言要求变量在使用前:

  • 定义名称
  • 定义数据类型

python不需要设定,它会针对变量的内容自行设定数据类型。

1.2 变量的命名规则

  • 由英文字母,数字,下划线,中文组成。
  • 不能以数字开头。
  • 大小写敏感。
  • 不要用关键字(保留字),内置函数名用作普通变量名。

1.3 变量赋值

把3赋值给变量a:

a = 3

多个变量赋同一个值:

 a = b = c = 2

多个变量赋不同的值(按顺序赋值)

x, y, z = 10, 20, 30

交互两个变量的值:

x, y = 10, 20
x, y = y, x

1.4 删除变量

del 变量名, 删除后相当于收回原变量所占用的内存空间。

x = 5
del x

1.5 变量的作用域

作用域也称为命名空间,就是指变量可使用的范围。

1.5.1 作用域的划分

  • local 局部作用域

    在函数中定义的变量,当函数被调用时创建一个局部作用域,使用范围当前函数体。

    def trace():
        value = "hello"
        print(value)
    
  • enclosing 嵌套作用域

    当函数嵌套时,在闭包函数(内层函数)中可以访问外层函数中定义的变量。

    def outer_fun():
        outer_fun_var = "hello world"
    
        def inner_fun():
            # 在内层函数中可以访问外层
            print(outer_fun_var)
    
        return inner_fun
    
    
    fp = outer_fun()
    fp()
    
    

    但要注意内层函数要修改外层函数的值,必须用nonlocal声明一下:

    def outer_fun():
        outer_fun_var = "hello world"
    
        def inner_fun():
            # 要修改外层函数中的变量,必须声明一下
            # 否则是创建一个新的变量与外层函数没有关系
            nonlocal outer_fun_var
            outer_fun_var = 5
            print(outer_fun_var)
        return inner_fun
    
  • global 全局作用域

    全局变量是在模块中声明的变量,即一个文件中。它的使用范围限于单个模块文件。

    全局作用域可以在函数中读取,如果要修改全局变量则需要用global声明一下。

    PI = 3.14
    
    def area1():
        r = 5
        # 读取全局变量
        print(PI * r * r)
    
    def area2():
        r = 5
        # 修改全局变量
        global PI
        PI = 3.1415926
        print(PI * r * r)
    
  • built-in 内置作用域

    是系统内部固定模块定义的变量,在内置作用域定义的变量我们称之为内置变量。

    # 查看所有的内置变量
    print(vars())
    

1.5.2 变量名解析的LEGB法则

搜索变量名的优先级:局部变量 > 嵌套作用域 > 全局作用域 > 内置作用域

注意:

python只在模块,类,函数中才会引入新的作用域,其他的代码块如if, try, for等不会引用新的作用域,在这些语句内定义的变量,在外部也可以访问。

标签:outer,变量,PYTHON,作用域,fun,def,函数
From: https://www.cnblogs.com/three-sheep/p/16930469.html

相关文章

  • python学习第八周总结
    多进程实现TCP服务端并发之前我们学习了用socket模块进行文字以及文件的传输,但是之前的操作一个服务端只能与一个客户端进行交互,如果要想实现多个客户端与服务端交互的......
  • 变量、input函数、getpass模块
    一、变量1、声明变量name="ming"print("mynameis",name)上述代码声明了一个变量,变量名为:name,变量name的值为“ming”。2、变量命名规则变量名只能是字母......
  • Python基础补充——python基础语法
    学习Python3基础语法|菜鸟教程(runoob.com)只是个人笔记,没有原创内容注释Python中单行注释以 # 开头;多行注释可以用多个 # 号,还有''''''和""""""'''zhushi......
  • PYTHON 注释
    1.1单行注释#注释内容单独一行:#这是一个helloworld输出程序print("Helloworld!")放在行尾:print("Helloworld")#输出Helloworld1.2带字符编码的注释这......
  • Python对豆瓣电影Top250并进行数据分析并可视化
    数据获取翻页操作观察可知,我们只需要修改start参数即可headers字段headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫通过headers中的User-A......
  • Python: 对程序做性能分析及计时统计
    1.对整个程序的性能分析如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了。(base)➜Learn-Pythontimepythonsomeprogram.pypython......
  • Basler的python库安装(windows)
    Basler官方的python支持放到了GitHub上,GitHub-basler/pypylon:TheofficialpythonwrapperforthepylonCameraSoftwareSuite截止到2022.11.27日,支持到python3.1......
  • Python time sleep()方法
    描述Pythontimesleep(secs)函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。语法sleep()方法语法:time.sleep(t)参数t--推迟执行的秒数。返回......
  • Python 打开和读取文件的方式
    这是一篇介绍python读取文件的几种方式文章一、打开和读取文件的方式"""打开文件的方式可以使用f=open(path,'r')f.close()来打开和关闭文件或者使用withopen(fi......
  • Python安装(Windows)
    个人喜欢从官网直接下载具体版本安装,然后通过cmd的pip安装其他包。1、官网下载Python,PythonReleasesforWindows|Python.org2、安装选择允许添加路径到系统环境,选择......