博客
关于我
22 模块原则
阅读量:646 次
发布时间:2019-03-14

本文共 1065 字,大约阅读时间需要 3 分钟。

原则:

  • 每个模块在被导入时,必须保证其所有代码可以顺利执行。
  • 在导入文件时,所有未缩进的代码都会被执行。
  • 示例:

    模块1:p1

    def func():    print("哈哈哈")    print("ooooo")

    导入:

    import p1print("*" * 10)

    结果:

    ooooo**********

    再看第二个示例:

    模块1:p1

    def func():    print("哈哈哈")    print("ooooo")    func()

    导入:

    import p1print("*" * 10)

    运行结果:

    ooooo哈哈哈**********

    问题:

    在实际开发中,主程序如何避免在被导入时执行?

    解决方法:

    使用__name__魔法方法。

    __name__特性:

  • 当文件用于测试程序时,__name__始终为'__main__'(字符串)。
  • 当文件作为模块导入时,__name__为文件名。
  • 示例:

    模块1:p1

    def run():    print("哈哈")    print(__name__)    run()

    导入:

    import p1print("*" * 10)

    运行结果:

    p1哈哈**********

    这样可以看到,导入时__name__的值变为文件名p1

    问题解决:

    如何让测试程序在被导入时不被执行?

    解决方法:

    使用条件判断。

    示例:

    文件名:p2

    def func():    a = "小猫"    b = "小狗"    return f"{a}在某个不经意的时刻便爱上了{s}" % (a, b)def func1():    a = "男人"    b = "女人"    return f"{a} 的责任就是让 {b} 放心{s}" % (a, b)

    导入:

    import p2print("*" * 10)

    结果:

    **********

    再看另一种导入方式:

    import p2print(p2.func())print(p2.func1())print("*" * 10)

    结果:

    小猫在某个不经意的时刻便爱上了小狗男人 的责任就是让 女人 放心**********

    理解了吗?

    模块标准语法:

    def func():    passdef func():    passdef func():    passdef func():    passdef main():    passif __name__ == "__main__":    main()

    转载地址:http://tdsoz.baihongyu.com/

    你可能感兴趣的文章
    mysql 分组统计SQL语句
    查看>>
    Mysql 分页
    查看>>
    Mysql 分页语句 Limit原理
    查看>>
    MySQL 创建新用户及授予权限的完整流程
    查看>>
    mysql 创建表,不能包含关键字values 以及 表id自增问题
    查看>>
    mysql 删除日志文件详解
    查看>>
    mysql 判断表字段是否存在,然后修改
    查看>>
    mysql 协议的退出命令包及解析
    查看>>
    mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>
    mysql 多字段删除重复数据,保留最小id数据
    查看>>
    MySQL 多表联合查询:UNION 和 JOIN 分析
    查看>>
    MySQL 大数据量快速插入方法和语句优化
    查看>>
    mysql 如何给SQL添加索引
    查看>>
    mysql 字段区分大小写
    查看>>
    mysql 字段合并问题(group_concat)
    查看>>
    mysql 字段类型类型
    查看>>
    MySQL 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>