zoukankan      html  css  js  c++  java
  • 如何使用其他文件中定义的类Python

    我在文件a.py中定义了一个类class A(object),现在想在b.py中的类B中某个函数中创建一个A的对象,需要如何操作呢?

    我在b的头加了import a.py
    然后使用语句 obj = A()总是报错
    http://hi.baidu.com/kxw102/item/bbc7db11a863e00ab88a1a0c

    正确的方法应该是:from a import A

    下面我们来看看具体的原理:
    python中是通过名称空间来定位的.
    import a 是将a这个模块引入, 名称是a;也可以import a as b: 这样是将a这个模块引入, 但是名称是b
    但是, 引入一个模块, 是仅仅引入了模块的名字, 模块自身又是一个名称空间, 所以, 要访问模块内部的成员的时候, 需要用点号来访问, 或者如二楼所说的from import方式引入.
    比如:
    import a
    obj = a.A()
    这是允许的, 因为a是当前名称空间中可见的, 而a自身作为名称空间, 其中的东西也就可以通过.指定的路径访问了.

    另外的方式:
    from a import *
    或from a import A, B
    或from a import A as B, B as C
    这些都是可以的.
    from a import *: 将a模块中的所有名称引入到当前名称空间, 继续使用其在a模块中的名称.
    from a import A: 将a模块中的名称A引入到当前名称空间.
    from a import A as B, B as C: 将a模块中的A引入到当前名称空间, 在当前名称空间中, 其名称为B, 同时, 将a模块中的B引入到当前名称空间, 在当前名称空间中, 其名称为C:

  • 相关阅读:
    项目管理【38】 | 项目人力资源管理-管理项目团队
    转:模型蒸馏,教师学生模型
    转:pytorch 中forward 的用法与解释说明
    KNN, sklearn
    转:matplotlib, 去除plt.savefig()的白边
    转:Latex 表格 合并行/列
    转:LaTeX xcolor颜色介绍
    余弦相似性,cos距离函数
    python confusion matrix 混淆矩阵
    转:Tmux 使用教程
  • 原文地址:https://www.cnblogs.com/yunsicai/p/3569447.html
Copyright © 2011-2022 走看看