美文网首页ITS·黑客
Python学习笔记(十一)模块

Python学习笔记(十一)模块

作者: 木凛 | 来源:发表于2017-04-20 15:36 被阅读0次

    在Python中,一个.py文件就称之为一个模块(Module)。

    使用模块

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

    2)引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,abc.py模块的名字就变成了mycompany.abc

    3)每一个包目录下面都会有一个__init__.py的文件,可以为空,由它来让目录作为一个包的存在

    作用域

    1)正常的函数和变量名是公开的(public)

    1.1)类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,自己的变量不要这样设置

    1.2)类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等

    2)外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public

    __main__

    先写一个模块:

    #module.py

    def main():

        print "we are in %s"%__name__

    if __name__ == '__main__':

        main()

    这个函数定义了一个main函数,我们执行一下该py文件发现结果是打印出”we are in __main__“,说明我们的if语句中的内容被执行了,调用了main():

    但是如果我们从另我一个模块导入该模块,并调用一次main()函数

    #anothermodle.py

    from module import main

    main()

    其执行的结果是:we are in module

    但是没有显示”we are in __main__“,也就是说模块__name__ = '__main__' 下面的函数没有执行。

    这样既可以让“模块”文件运行,也可以被其他模块引入,而且不会执行函数2次。这才是关键。

    总结

    如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。

    相关文章

      网友评论

        本文标题:Python学习笔记(十一)模块

        本文链接:https://www.haomeiwen.com/subject/wwgtzttx.html