zoukankan      html  css  js  c++  java
  • Python的包package的导入与被导入(包的类和方法的导入,__init__()怎么写)

    包package的导入与被导入:

    参考一下:

    https://blog.csdn.net/guowujun321/article/details/80764468

    1.文件目录:

    |

    |--  A/

    | | __init__.py

    | |A1.py

    |

    | B/

    | |__init__.py

    | |B1.py

    |

    | 测试A.py

    问题1:在平行目录下的 测试A.py 想要导入A包时,需要在 测试A.py 中写:

    from A import *
    然后可以直接调用A包中的方法或者类(不需要写包名)
    或者
    import A
    A.ac()
    a1=A.A_Class("asd")

    问题2:A包的__init__文件应该怎样写,例如要导如A1.py文件中的Class:

    import os,sys
    Path=os.path.dirname(os.path.abspath(__file__))
    sys.path.append(Path)
    from A1 import *  #这一句是不可以用import A1这条语句的,因为在别的地方导入该A包的时候,会出错。(会出现未知命名错误),
    至于前面的三行代码是为了把A1所在目录导入path中,,让系统可以找到。

    问题3:当B包中的B1.py文件需要导入A包时,该怎么导入:

    import os,sys
    Path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    print(Path)
    sys.path.append(Path)
    from A import *
    a1=A_Class("张三")
    我创建的A包中有一个类A_Class.当需要导入A包时,需要把A包的父目录添加到path中让系统可以找到。

    ①采用from...import方式

    from 包绝对路径 from 模块py文件

    from package.subpackage1 import foo1

    from 模块 import 变量

    from 包 import 子包

    ②采用import方式

    import package.subpackage1

    import 模块

    总结:import和from 2个关键字后面 都可以是模块或者包

    本测试代码链接:https://github.com/Anxc520/test1.git

  • 相关阅读:
    [原]C++ double 小数精度控制
    C++ double 小数精度控制
    从微软小冰看微软运营手段的转型
    Windows下搭建FTP服务器
    C++ 下使用curl 获取ftp文件
    解决MSF更新证书错误
    mimikaz获取明文密码
    metasploit5配置数据库
    Cobalt Strike几种不常见的上线方式
    Powershell
  • 原文地址:https://www.cnblogs.com/Anxc/p/10881856.html
Copyright © 2011-2022 走看看