zoukankan      html  css  js  c++  java
  • 【python51--__name__属性】

    一、基础知识

    1、__name__ == '__main__'

    所有模块都有一个__name__属性,__name__的值取决于如何应用模块,在作为独立程序运行的时候,__name__属性的值是‘__main__’,而作为模块导入的时候,这个值就是该模块的名字了

    if __name__ == '__main__' 

      test()

    含义:如果name调用的是主程序的则,运行if里面的test()语句,而不是其他的(如导入的包)的语句

    2、搜索路径:python模块的导入需要一个路径搜索的过程,导入一个hello模块,Python需要找到一个叫hello.py的文件,如果找到就搜索成功即导入成功,找不到就失败

    -- Python搜索相关路径下的模块

    >>> import sys
    >>> sys.path
    ['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
    >>> 
    
    #一般常用的是/site-packahes路径,按照这个逻辑来说,我们只需要告诉模块文件在哪里,就可以让Python在此路径下找

    --存放Python的模块文件

    >>> import Temperature
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        import Temperature
    ModuleNotFoundError: No module named 'Temperature'
    >>> sys.path.append("/Users/wufq/Documents/test")
    >>> sys.path
    ['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/wufq/Documents/test']
    >>> import Temperature
    >>> Temperature.c2f(32)
    89.6
    >>> 
    
    '''
    |--代码解释:
    |--  先导入:import Temperature,报错,原因是python在搜索路径下没有找到这个包
    |--  解决方法:把Temperature文件所在的路径放到python的搜索路径下:sys.path.append("/Users/wufq/Documents/test"),查看一下是不是已经加入:sys.path
    |--  再次导入验证:import Temperature --> Temperature.c2f(32) -->  89.6
    '''

     3、包(package)

    -- 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字

    -- 在文件夹中创建一个__init__.py的模块文件,内容可以为空明

    -- 将相关的文件放入文件中

    import IM.Temperature as tr
    
    print(tr.c2f(32))
    print(tr.f2c(99))
    
    
    '''
    |-- 代码解析:
    |--1、先创建一个文件夹IM,并把Temperature.py文件放到IM文件夹内,并创建一个空的__init__.py文件
    |--2、新建一个calc.py文件,编写相应的代码(即:上面的代码)
    |--3、import时必须带着包名IM(import IM.Temperature as tr),否则就会报错
    '''

     4、如果不想把相应的模块放在当前文件夹内,最好的选择是?

    放在site-packages文件夹内,因为他就是存放模块的文件夹

    5、import urllib.request语句,这个urllib是什么

    urllib是负责管理url的包,用于访问网址

    6、如何区分一个文件夹是普通的文件夹还是包

    主要看这个文件夹内是否含有__init__.py,如果有则是包,并且__init__.py可以是空文件,也可以里面写一些代码

  • 相关阅读:
    java.sql.SQLException: Io 异常: Got minus one from a read call
    ORACLE 数据库名、实例名、ORACLE_SID的区别
    如何查看oracle的sid
    expdp impdp 数据库导入导出命令详解
    Oracle连接数过多释放机制
    oracle查看允许的最大连接数和当前连接数等信息
    世界是无限的、复杂的、运动的
    世界
    世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
    运动着的物质世界是普遍联系和永恒发展的
  • 原文地址:https://www.cnblogs.com/frankruby/p/10033928.html
Copyright © 2011-2022 走看看