• 23 python初学(模块和包)


    模块(module):

        好处 提高代码可维护性 + 编写代码不必从零开始

        模块有三种 python标准库、第三方模块、应用程序自定义模块

        另外,使用模块还可以避免函数名和变量名冲突,相同名字的函数和变量完全可以分别存在不同的模块中。因此,我们在自己编写模块时,不必考虑名字会与其他模块冲突,但是也要注意,尽量不要与内置函数名字冲突。

        搜索路径:sys.path

    现在有 calculate.py文件,内有 add()、sub()方法

    模块导入方法:

    1. 导入整个模块:

                    import calculate,time (多个模块使用 , 分隔开)

                    print(calculate.add(1, 2))

       2. 导入模块内的多个方法:

                    from calculate import addsub

                    print(add(3, 2))

    import calculate  # 解释器通过搜索路径找到 calculate.py 后,将 calculate = calculate.py all code
    import sys
    需要使用 calculate 来调用add方法
    print(calculate.add(1, 2))
    # 搜索路径
    print(sys.path)

    from calculate import *:  # 此种情况遇到的问题是 calculate 中的 add 方法与本文件中的 add 方法有重复时,会按照顺序来决定使用哪一个。因此不建议使用此种方式

    from calculate import add as plus: # 这样就不能再使用 add 方法,而是使用 plus 方法

     

    from calculate import add, minus
    # 此时不能再使用 calculate 来调用add方法,他并不是一个可以直接拿到的变量了。
    print(add(3, 2))
    
    from calculate import add as plus
    print(plus(3, 3))

    1. 从包 (web) 中导入模块:
      • 如果包和文件在同一级目录:  from web import logger  (不能 import web.logger
      • web 和文件在同一目录,web下还有包 web2web2 下有文件logger
    2. 如果想导入 web.web2 下的模块 logger 导入 mylogger 方法:
      • from web.web2.logger import mylogger
    3. 导入包: import web   # 这句话执行了包 web 下的 _init_ 模块
    # from web import logger   # 从同级包导入模块
    import web  # 导入包,执行了_init_模块
    print(web.main.x)   #报错AttributeError: module 'web' has no attribute 'main'

    :模块使用来组织函数的,包是用来组织模块的;

       包下面有 _init_ 文件

    目录结构:

    bin(入口):_init_.py bin.py

    module(主逻辑)_init_.py main.py logger.py

    conf(配置):

    # 在被调用时,不会编译执行此段代码

    if  __name__ == “__main__”:

    序列化:

    json

    pickle

    shelve

    xml

    标签、属性: <country name = ‘panama’>  </country>

    猪猪侠要努力呀!
  • 相关阅读:
    TopCoder<SRM>上的一道1100分的题目解析附代码
    《算法导论》思考题15-2 整齐打印
    《算法导论》思考题15-1 双调欧几里得旅行商问题(动态规划)
    <ReversingEngineering>关于windows32位系统下的dll注入技术经验汇
    实现一个EventEmitter类,这个类包含以下方法: on/ once/fire/off
    [Jquery 插件]活动倒计时,可同步服务器时间,倒计时格式随意设置
    阻止a标签跳转四种方法 兼容各大浏览器(包括IE)
    git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...
    nrm npm源管理利器
    Element UI 框架搭建
  • 原文地址:https://www.cnblogs.com/mlllily/p/10317143.html
Copyright © 2020-2023  润新知