zoukankan      html  css  js  c++  java
  • Python 代码块

    代码块

    骏马金龙https://www.cnblogs.com/f-ck-need-u/p/9925021.html

    https://www.cnblogs.com/jin-xin/articles/9439483.html

    代码块可以使得一段python代码作为一个单元、一个整体执行。

    几种代码块

    1. 模块文件是一个代码块
    2. 函数体是一个代码块
    3. class的定义是一个代码块
    4. 交互式(python idle)的每一个命令行都是一个独立的代码块
    5. 脚本文件是一个代码块
    6. 脚本命令是一个代码块(python -c "xxx")
    7. eval()和exec()中的内容也都有各自的代码块

    代码块的作用是组织代码,同时意味着退出代码区块范围就退出了作用域范围。例如退出函数区块,就退出了函数的作用域,使得函数内的本地变量无法被函数的外界访问。

    代码块缓存机制

    缓存机制的前提条件:在一个代码块

    缓存机制内容:Python在执行初始化对象的时候,回检查之前有没有初始化过这个变量,如果有就指向这个内存。

    适用对象:int,str,float,bool

    交互式代码块

    注意:小整数可以跨域,因为它在python启动的时候就在内存中存入了常用的小整数(-5到256)

    交互式是一行为一个代码块,所以当它执行一句代码就不知道上面执行了啥

    可以理解,1班来了一个人,2班并不知道

    x = 1000
    y = 1000
    x is y
    
    False
    1.x=1000,在内存中开辟一个内存存1000,x指向他
    2.y=1000,这时候不知道之前代码运行了啥,于是自顾自的创建了一个内存,存1000,y指向他
    3.由于x和y不是指向同一个内存,就是False
    
    
    x=1000;y=1000
    x is y
    1.python首先读取这一行,发现x,y的值都是1000,于是进行了简单的优化x,y=1000
    2.x,y指向同一个内存,所以为True
    
    True
    

    脚本py文件代码块

    整个py文件是一个代码块,但是它的内部还是可以嵌套其他的代码块的如(函数,exec()等)

    x=1000
    y=1000
    print(x is y)
    def zx():
        c=1000
        v=1000
        print(c is y)
        print(c is v)
    zx()
    
    True
    False
    True
    

    由此可见代码嵌套代码块也是不能相互影响的,函数的代码块,并不知道外部发生了什么,这就可以解释之前作用域的问题了

    注意:

    函数的声明过程中,所有涉及到变量的作用域内都不会对i进行赋值,仅仅只是保存了这个i变量名,只有在调用函数的时候才会进行赋值操作

  • 相关阅读:
    Vue基础第三章
    Vue基础第二章
    Vue基础第一章
    AWS笔记
    导入Dynamic Web Project后程序有红叉但是可以运行
    JSTL配置文件下载地址
    access纯jdbc连接
    XML学习总结二——DTD
    【转】无题
    XML学习总结一
  • 原文地址:https://www.cnblogs.com/zx125/p/11745864.html
Copyright © 2011-2022 走看看