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

  • 相关阅读:
    根据当前日期转目的国地区时间戳
    时间戳转换作用域问题
    字符串拼接问题
    input全选和取消全选
    循环遍历渲染模块
    jQuery实现获取选中复选框的值
    React组件
    underscore.js依赖库函数分析二(查找)
    underscore.js依赖库函数分析一(遍历)
    React入门
  • 原文地址:https://www.cnblogs.com/Anxc/p/10881856.html
Copyright © 2011-2022 走看看