zoukankan      html  css  js  c++  java
  • python学习手册笔记——22.模块代码编写基础

    00.以.py位后缀名进行保存,任何此类文件都会被自动认为Python模块。在模块顶层指定的所有变量名都会变成器属性(宇模块对象结合的变量名),并且可以导出工客户端来使用。

    01.一个文件名就是一个模块对象,引用的使用使用文件名字就是代表模块

    02.因为import使一个变量名引用整个模块对象,我们必须通过模块名称来得到该模块的属性。

    03.from语句会把变量名复制到另一个作用域,所有它就可以让我们直接在脚本中使用复制后的变量名,而不需要通过模块

    04.import与import区别
    a.因为import使一个变量名引用整个模块对象,我们必须通过模块名称来得到该模块的属性

    b.变量名复制到另一个作用域,所有它就可以让我们直接在脚本中使用复制后的变量名,而不需要通过模块

    c.使用*时,会取得模块顶层所有赋了值得变量名得拷贝。

    05.模块会在第一次import或from载入并执行,并且旨在第一次如此。这是有意而为之得,因为该操作开销较大。在默认得情况下,Python只对每个文件得每个进程做一次操作。之后得导入操作都只会去除已加载得模块对象。

    06.细致点


    07.import和from是赋值给一个变量名:
    *import将整个模块对象赋值给一个变量名
    *from将一个或多个变量名赋值给另一个模块中同名得对象。以from复制得变量名会变成对共享对象得引用。

    08.只要在心中把“调用者”和“函数”换成"被导入模块"和”导入者“即可。

    09.from只是把变量名从一个模块复制到另一个模块,并不会对模块名本身进行赋值。

    10.简单模块一般倾向于使用import,而不是from。多数得from语句是用于明确列举出想要得变量,而且限制在每个文件中只用一次from * 形式。这样一来,任何吴定义得变量名都可认为是存在与from *所引用得模块内。

    11.模块最好理解位变量名得疯转,也就是定义想让系统其余部分看到变量名的场所。

    12.模块加载和作用域的概念以了解其原因。
    *模块语句会在首次导入时执行
    *顶层的赋值语句会创建模块属性
    *模块的命名空间能通过__dict__或dir(M)获取
    *模块时一个独立的作用域(本地变量就是全局变量)

    13.属性名的点号运算
    *简单变量:X是指再当前作用域内搜索变量名X
    *点号运算:X.Y是指再当前范围内搜索X,然后搜索对象X之中的属性Y.
    *多层点号运算:X.Y.Z指的时寻找对象X之中的变量名,然后再找对象X.Y中的Z.
    *通用性:点号运算可用于任何具有属性的对象:模块、类、C扩展类型

    14.变量的含义一定是由原代码中的赋值语句的位置决定的,而属性总是伴随着队行的请求。

    15.moda.f修改moda中的X,而不是modb中的X。moda.f的全局作用域一定是其所在的文件,无论这个函数是由哪个文件调用的。

    16.模块程序代码默认指对每个过程执行一次。要强制使模块代码重新载入并重新运行,你的可以要求Python这么做,也就是调用reload内置函数。
    *导入只会模块再流程中第一次导入时,加载和执行该模块的代码
    *之后的导入只会使用已加载的模块对象,而不会重载或重新执行文件的代码
    *reload含税强调以加载的模块的代码重新载入并重新执行。此文件中新的代码赋值语句会再适当的地方修改现有的模块对象。

    17.reload基础
    *reload是python中内置函数,而不是语句
    *传给reload是已经存在模块对象,而不是变量名
    *reload在Python3.0位于模块之中,情切必须导入自己。

    18.reload需要小括号,但import不需要。reload(module)
    *reload会在模块当前命名空间内执行模块文件的新代码。重新执行模块文件得额代码会覆盖其现有命名空间,并非进行删除而进行重建
    *文件中顶层赋值语句会使得变量名换程新值。例如,重新执行的def语句会因重新赋值函数变量名而取代模块命名空间内核函数之前的版本。
    *重载会影响所有使用import读取了模块的刻画u按。因为import的客户端需要通过点号运算去除属性。
    *重载只会对以后使用from的客户端造成影响

  • 相关阅读:
    xapian的使用
    Andriod 环境配置以及第一个Android Application Project
    2013Esri全球用户大会之ArcGIS for Server&Portal for ArcGIS
    window server 2012 更改密钥 更改系统序列号
    持续集成之路——数据访问层的单元测试(续)
    多项式相乘与相加演示
    hdu 1847 博弈基础题 SG函数 或者规律2种方法
    solaris之cpu
    Android音效SoundPool问题:soundpool 1 not retry
    poj1845-Sumdiv
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/11215677.html
Copyright © 2011-2022 走看看