• Python合集之模块(三)


    1.已主程序的形式执行

    这里创建一个模块,名称为christmastree,在该段代码中,首先定义一个全局变量,然后创建一个名称为fun_christmastree()的函数,最后在通过print()函数输出一些内容。

    printtree="我是一棵松树"
    def fun_christmastree():
        '''功能:一个梦
        无返回值
        '''
        pinetree="挂上彩灯,礼物。。。我变成一颗圣诞树"
        print(pinetree)
    #.............#
    print("下雪了")
    print("=========开始做梦=======")
    fun_christmastree()
    print("========梦醒了==========")
    pinetree="我身上楼满雪花,"+pinetree+"—_—"
    print(pinetree)

    在与christmastree模块同级目录下,创建一个名称为main.py的文件,在该文件中,导入christmastree模块,在通过print()语句输出模块中全局变量pinetree的值。代码如下:

    import christmastree
    print("全局变量的值为:",christmastree.pinetree)

    执行以上的代码,将得到如下的结果:

    下雪了
    =========开始做梦=======
    挂上彩灯、礼物。。。我变成一颗圣诞树
    ========梦醒了==========
    我身上楼满雪花,我是一颗松树
    全局变量的值为:我身上楼满雪花,我是一颗松树

    从上面的结果可以看出,导入模块后,不仅输出了全局变量的值,而且模块中原有的测试代码也被执行了,这个结果显然不是我们想要的,那么如何只输出全局变量的值呢?实际上,我们可以在模块中,将原本直接执行的测试代码放在一个if语句中,因此,可以将上面的代码修改为:

    printtree="我是一棵松树"
    def fun_christmastree():
        '''功能:一个梦
        无返回值
        '''
        pinetree="挂上彩灯,礼物。。。我变成一颗圣诞树"
        print(pinetree)
    #.............#
    if __name__="__main__":
        print("下雪了")
        print("=========开始做梦=======")
        fun_christmastree()
        print("========梦醒了==========")
        pinetree="我身上楼满雪花,"+pinetree+"—_—"
        print(pinetree)

    这样再次执行导入模块的main.py的代码,将只显示以下的内容:

    全局变量的值为:我身上楼满雪花,我是一颗松树

    注:在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在那个模块中执行,如果一个模块不是被导入到其他模块中执行,那么他可能在解释器的顶级模块中执行,顶级模块的__name__变量的值为 __main__

    花絮:

    本期的Python 模块就分享到这里,下期我们将继续分享Python模块的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    php和c++自带的排序算法
    谷歌Chrome浏览器离线安装包
    js阻止表单提交
    Sublime text中文乱码解决办法
    不会飞的鸟
    linux命令**50
    linux基础2
    linux基础1
    css3实现单行文本溢出显示省略号
    null和undefined的区别
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14650384.html
Copyright © 2020-2023  润新知