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

    一、一个python文件的两种用途
    1、被当作程序运行:
    2、被当作模块导入:

    这两种python文件的区别是啥?图解如下
    # 创建一个foo.py的文件
    
    print("模块foo==>")
    
    x = 1
    # 函数在定义阶段已经定义好了x
    def get():
        print(x)
    
    def change():
        global x
        x = 0
    # 这里调用多为调试用:主要查看该文件的代码是否是否正常运行
    # get() # 1
    # change() # 0

    # print(__name__) # __main__
    # 1、当foo.py被运行时,__name__的值为'__main__'。
    # 2、当foo.oy被当作模块导入时,__name__的值为'foo'

    # 输入'main'后回车,结果如下:
    if __name__ == '__main__':
    print('当文件被运行时做的事情')
    get()
    change()
    else:
    # 被当作模块导入时做的事情
    print("被当作模块导入时做的事情")
    pass
    # 创建一个m文件,并导入foo.py文件
    
    import foo
    print(foo)  # <module 'foo' from 'D:\pycharm\oldboy_29\day021\test021\foo.py'>
    print(foo.x)  # 跟foo要x 结果时1
    print(foo.get)  # 打印foo的get的内存地址 <function get at 0x000001E4D63D9670>
    print(foo.get()) # None
    print(foo.change)  # 打印foo的change的内存地址  <function change at 0x000001E4D63D9700>
    print(foo.change())  # None
    print(foo.x)  # 0
    x = 10
    y = 20
    print("1111")
    print("2222")
    print(x,y)
    这两种python文件的区别是啥?图解如下图解导入模块时的内存空间的产生

     

     

     

     

  • 相关阅读:
    Linux进程管理工具Supervisor
    RSA加密传输代码示例
    静态网站创建工具Docusaurus
    Proactor和Reactor模型
    机器学习中的七宗罪
    Tokio internals: Understanding Rust's asynchronous I/O framework from the bottom up
    开源软件创建SOC的一份清单
    How to setup SOC using open-source tools
    彼得定律
    深入浅出通信原理连载
  • 原文地址:https://www.cnblogs.com/liunaixu/p/12691558.html
Copyright © 2011-2022 走看看