我在文件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:

转载于:https://www.cnblogs.com/yunsicai/p/3569447.html

如何使用其他文件中定义的类Python相关推荐

  1. 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。...

    编译ASP.NET时,提示"请确保此代码文件中定义的类与"inherits"属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的.", ...

  2. 请确保此代码文件中定义的类与“inherits”属性匹配.并且该类扩展的基类(例如 Page 或 UserControl)是正确...

    遇到这个问题 特此记录一下 由于copy   aspx页面 引起的 copy之后   类名实原来那个的跟 你现在的文件名不一样LoginAPI.aspx public partial class yu ...

  3. C++无法在头文件中定义string类数据

    //头文件中不仅要包含<string>,也要加上命名空间 //.h文件 #include <string> using namespace std; //或者使用 //std: ...

  4. 请确保此代码文件中定义的类与“inherits”特性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。

    可能的原因: 1.前台页面.aspx中Inherits的命名与其代码隐藏文件.aspx.cs中的类名不同. 2.代码隐藏文件中手动添加了命名空间,去掉后可编译正常(建议修改在.aspx页面中的inhe ...

  5. c语言头文件中定义inline static相关函数的优劣

    头文件中常见static inline函数,于是思考有可能遇到的问题,如头文件经常会被包含会不会产生很多副本?网上说法不一.于是自己验证.经过arm-none-eabi-gcc下测试后得出结论. in ...

  6. 能否用痰盂盛饭——谈谈在头文件中定义外部变量

    能否用痰盂盛饭--谈谈在头文件中定义外部变量 - garbageMan - 博客园 能否用痰盂盛饭--谈谈在头文件中定义外部变量 "能否用痰盂盛饭"并非是一个技术问题,而是一个哲学 ...

  7. 在java程序中定义的类有两种成员_java试题 急需答案 谢谢!!!

    三.填空(每小题2分,共10分)1.在Applet中,创建一个具有10行45列的多行文本区对象ta的语句为:2.创建一个标识有"关闭"字样的标签对象gb的语句为.3.方法是一种仅有 ...

  8. mybatis在关联映射中,引入外部xml文件中定义的对象

    2019独角兽企业重金招聘Python工程师标准>>> association标签 在mybatis中,关联映射是通过association标签实现的. Lottery2Rule对象 ...

  9. 【自我修养】不要嘻嘻哈哈的在头文件中定义变量

    在头文件中直接定义变量甚至定义加上赋值,是非常没有修养的行为,新手是经常这样干,有的老手也不注意,这是不应该的. 在头文件中定义变量会出现这些问题: 1,出现变量重复定义的错误.如果你在头文件中定义了 ...

最新文章

  1. linux ls没有反应_Linux入门②“命令格式”
  2. 湖南省第八届大学生计算机程序设计竞赛1115: 最短的名字(模拟)
  3. sw标准件不能配置_思科设备与华为设备在配置Telnet,有啥不一样呢?
  4. 【NLP】Transformer自注意机制代码实现
  5. 计算机科学概论(2)数据的操控和程序的执行
  6. 【渝粤题库】陕西师范大学200731 计算机组成原理
  7. blasphemy - 题解
  8. Druid连接池(一)
  9. 大数据分析平台架构有哪些
  10. 光模块自动测试系统软件,可插拔收发光模块自动化检测系统
  11. HBase 表修复在线方式和离线方式
  12. 计算机用户注册表修改,如何通过注册表修改桌面计算机/用户文档图标
  13. 甘肃暴雨强度公式_中国城市新一代暴雨强度公式
  14. 大数据公司数据挖掘的49个案例
  15. IE网页木马 - 使用 JS 实现打开网页后直接运行木马程序
  16. 会java 学c_先学Java再学c会简单点吗?
  17. 秋水仙碱与牛血清白蛋白 (BSA)偶联物(相关实验)
  18. 扩展欧几里得定理求ax + by = c 的通解
  19. Mac OS制作Ubuntu安装U盘
  20. Spring Cloud Alibaba系列使用(二)----Nacos注册中心

热门文章

  1. 全球32家人工智能独角兽公司
  2. 企业管理做不好的根源!「管理智慧」
  3. OpenAI联合创始人:AI的极限?我真的不知道!
  4. 一个优秀的CIO,应该具备如何的知识体系和管理能力?
  5. 一文读懂机器学习中的模型偏差
  6. 通俗讲解Pytorch梯度的相关问题:计算图、torch.no_grad、zero_grad、detach和backward;Variable、Parameter和torch.tensor
  7. MEMS惯性传感器有哪些趋势?
  8. 既然使用神经网络也可以解决分类问题,那SVM、决策树这些算法还有什么意义呢?...
  9. 发表了一篇英文长文:语义信息G理论和逻辑贝叶斯推理for统计学习
  10. ACL 2019年度回顾:自然语言处理发展趋势