zoukankan      html  css  js  c++  java
  • Python 基础

    动态类型

    从概念上将,Python将会执行三个不同步骤去完成这个操作:

    1. 创建一个对象表示3
    2. 创建一个变量,如果它还没有被创建
    3. 将变量与新的对象3连接

    实际效果如图所示:

    image

    变量总是连接到对象上,并且绝对不会连接到其他变量上,但是更大的对象可能连接到其他的对象。

    • 变量是一个系统表的元素,拥有指向对象的连接的空间
    • 对象是分配的一块内存,由足够的空间去表示它们所代表的值
    • 引用是自动形成从变量到对象的指针

    作用域

    python 的变量名解析机制成为LEGB原则:

    • 当函数中使用未认证变量名时,python会搜索4个区域[本地作用域L,上一层结构的def或lambda的本地作用域,之后是全局作用域G,最后是内置作用域B],并且在在第一处能够找到这个变量名的地方停下来,如果没有找到此变量名就会报错。
    • 当函数给一个变量名赋值时,Python总是创建或改变本地作用域的变量名,除非它在函数中已经声明为全局变量global。
    • 当在函数外给一个变量赋值时,本地作用域与全局作用域是相同的。

    image

    Import如何工作

    import 执行的3个步骤:

    1. 找到模块代码
    2. 编译成位码(如果需要,比如源文件被修改)
    3. 执行模块代码来创建其所定义的对象

    这三个步骤,只有模块在第一次导入时才会进行。当再次导入时,会跳过以上三个步骤,直接提取内存中已加载的对象。

    类与OOP

    类vs实例:类是生产实例的工厂

    类vs模块:内存中特定模块只能有一个实例,类可以可以有多个实例

    类接口技术:

    • Super 定义一个method函数以及在子类中期待一个动作的delegate
    • Inheritor 没有提供任何变量名,会继承Super定义的一切内容
    • Replacer 用自己的版本覆盖Super的method
    • Extender 覆盖并回调默认的method,从而定制Super的method
    • Provider 实现Super的delegate方法预期的action方法
  • 相关阅读:
    第十次上机练习
    第七次作业
    第九次上机练习
    第八次上机练习
    第七次上机练习
    第六次作业
    第六次上机练习
    6.3
    5.28
    5.26
  • 原文地址:https://www.cnblogs.com/hotbaby/p/4903877.html
Copyright © 2011-2022 走看看