从Python包中的模块方便地导入几个类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从Python包中的模块方便地导入几个类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1115字,纯文字阅读大概需要2分钟。
内容图文
我目前正在为语法树创建一个框架.我有一个文件夹/包语法,其中包含一个语法树元素,它是每个文件中的一个类,结构看起来像:
syntax/List.py -> contains class List
syntax/Block.py -> contains class Block
syntax/Statement.py -> contains class Statement
现在我想以一种我可以访问类的方式将文件夹导入到我的源文件中
block = syntax.Block()
这有可能吗?到目前为止,我总是最终需要syntax.Block.Block(),这不是很好……
解决方法:
项目结构
syntax
├── Block.py
├── __init__.py
班级
# syntax/Block.py (this file really ought to be lowercase, leave PascalCase to class names)
class Block(object):
pass
进口__init__
# syntax/__init__.py
from .Block import Block # Relative import with .
使用包
In [5]: import syntax
In [6]: b = syntax.Block()
In [7]: b
Out[7]: <syntax.Block.Block at 0x108dcb990>
如果您对某些重组有开放的选择
与需要我们将单个类放入具有相同名称的文件的语言(文件Block.py中的类Block)不同,Python对此非常灵活.
你实际上可以在syntax.py中单独输入许多类并单独导入语法,然后访问syntax.Block(此时不需要__init__.py中的导入)
# syntax.py
class Block(object):
pass
class List(object):
pass
然后可以使用如下
import syntax
b = syntax.Block()
l = syntax.List()
内容总结
以上是互联网集市为您收集整理的从Python包中的模块方便地导入几个类全部内容,希望文章能够帮你解决从Python包中的模块方便地导入几个类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。