zoukankan      html  css  js  c++  java
  • python文件的两种用途

    python文件的两种用途

    • 编写好的一个python文件可以有两种用途:
      一:脚本,一个文件就是整个程序,用来被执行
      二:模块,文件中存放着一堆功能,用来被导入使用

    • python为我们内置了全局变量__name__,
      当文件被当做脚本执行时:__name__ 等于'__main__'
      当文件被当做模块导入时:__name__等于模块名

      作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
      if __name__ == '__main__':

      直观理解:
      对于当前运行的程序test.py而言,__name__ 变量的值是"__main__"。
      如果run.py调用了test.py,即import test,那么对test.py而言name变量的值是"test",对于run.py而言name变量的值是"main"。
      背后原因:
      有时我们写了可以直接被执行的模块(.py文件),但是在另一个程序中调用它时,我们其实只是想用一用里面写好的函数,而不是全都执行一遍。那么我们就可以把执行的部分放到if __name__ == '__main__' 中进行判断。
      如果if__name__ == '__main__' 为真,就说明我们是在直接执行这个模块,那么所有的操作都要运行一遍;但如果为假,就说明我们是引用了这个模块,只有在需要用到它的函数时,才会被调用执行。

    x = 1
    
    
    def f1():
        print('from f1')
    
    
    def f2():
        print('from f2')
    
    
    f1()
    f2()
    

    如果直接运行run.py会直接运行aaa.py中的f1()和f2(),但是如果我们在aaa.py中加上if __name__== '__main__:这句话,则可以防止运行run.py时执行f1()和f2()。因为当aaa.py被直接执行,即当做执行文件的时候__name__ == '__main__'; 在aaa.py被当做模块直接运行的时候__name__ == 'aaa'。由此可以让aaa.py在不同的场景下有着不同的用法。

    # aaa.py
    
    x = 1
    
    
    def f1():
        print('from f1')
    
    
    def f2():
        print('from f2')
    
    
    if __name__ == '__main__':
        f1()
        f2()
    
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    ASP.NET连接各种数据库办法
    随机生成中文验证码
    数据库进阶
    mysql数据库
    shell 系统学习
    redis 常见问题
    Linux下Nginx服务Rewrite和Proxy_Pass
    python 开发之路(2)
    shell 基础及提高
    mysql数据库和表物理内存
  • 原文地址:https://www.cnblogs.com/randysun/p/12244275.html
Copyright © 2011-2022 走看看