• 113.模块原则


    模块原则

    一个独立的Python文件就是一模块,在导入模块时,模块中所有没有任何缩进的代码 都会被执行一遍。

    开发需求:
    在实际开发中,每一个模块都是独立开发的,大多都有专人负责,开发人员通常会在各自负责的模块中增加一些测试代码,仅在模块内测试使用,而被导入到其他模块中不需要执行.

    解决方案:
    __name__ 属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会被执行。
    __name__ 是Python的一个内置属性,记录着一个字符串,如果是被其他模块导入的,__name__ 属性值就是模块名,如果是当前执行的程序 __name__ 属性值是 __main__。

    所以对于模块制作中的代码,我们应该进行优化。

    # 定义一个全局变量
    name = "自定义模块"
    
    # 定义一个函数求和
    def add2num(a, b):
        return a + b
    
    # 自定义一个人类
    class Person(object):
        pass
    
    # 定义一个函数, 用于测试
    def test():
        # 测试全局变量
        print(name)
        # 测试函数
        ret = add2num(10, 20)
        print(ret)
        # 测试类
        p = Person()
        print(p)
    
    # 解决方案
    if __name__ == '__main__':
        # 调用函数
        test()

    可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码。

    例子:

    # import hm_itcast
    from hm_itcast import name

    模块代码:

    # 定义一个全局变量
    name = "自定义模块"
    
    # 函数
    def add2num(a, b):
        return a + b
    
    # 自定义人类
    class Person(object):
        pass
    
    # 程序员需要对自己定义的模块需要进行自测
    def tt():
        print(name)
        print(add2num(10, 20))
        print(Person())
    
    
    # 执行tt() 是程序员在自测需要执行的代码
    # 如果被其他模块导入 那么不应该执行tt()
    
    # __name__的数值变化
    # 如果直接运行此模块
    # __name__ = __main__
    # 如果被导入使用的时候
    # __name__ = hm_itcast
    # 判断程序的入口
    if __name__ == '__main__':
        tt()
  • 相关阅读:
    使用 ASP.NET Core MVC 创建 Web API(五)
    使用 ASP.NET Core MVC 创建 Web API(四)
    使用 ASP.NET Core MVC 创建 Web API(三)
    使用 ASP.NET Core MVC 创建 Web API(二)
    使用 ASP.NET Core MVC 创建 Web API(一)
    学习ASP.NET Core Razor 编程系列十九——分页
    学习ASP.NET Core Razor 编程系列十八——并发解决方案
    一个屌丝程序猿的人生(九十八)
    一个屌丝程序猿的人生(九十七)
    一个屌丝程序猿的人生(九十五)
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12882978.html
Copyright © 2020-2023  润新知