博客
关于我
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 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
    查看>>
    Mysql 学习总结(89)—— Mysql 库表容量统计
    查看>>
    mysql 实现主从复制/主从同步
    查看>>
    mysql 审核_审核MySQL数据库上的登录
    查看>>
    mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
    查看>>
    mysql 导入导出大文件
    查看>>
    mysql 将null转代为0
    查看>>
    mysql 常用
    查看>>
    MySQL 常用列类型
    查看>>
    mysql 常用命令
    查看>>
    Mysql 常见ALTER TABLE操作
    查看>>
    mysql 往字段后面加字符串
    查看>>
    mysql 快速自增假数据, 新增假数据,mysql自增假数据
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>
    Mysql 提示:Communication link failure
    查看>>
    mysql 插入是否成功_PDO mysql:如何知道插入是否成功
    查看>>
    Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
    查看>>
    mysql 数据库备份及ibdata1的瘦身
    查看>>