Conveniently import several classes from modules in a Python package -


i'm creating framework syntax tree. have folder/package syntax contains 1 syntax tree element class in each file, structure looks like:

syntax/list.py -> contains class list syntax/block.py -> contains class block syntax/statement.py -> contains class statement 

now i'd import folder source file in way can access classes like

block = syntax.block() 

is possible @ all? far, ended need syntax.block.block() not nice...

project structure

syntax ├── block.py ├── __init__.py 

the class

# syntax/block.py (this file ought lowercase, leave pascalcase class names) class block(object):     pass 

imports in __init__

# syntax/__init__.py .block import block   # relative import . 

using package

in [5]: import syntax  in [6]: b = syntax.block()  in [7]: b out[7]: <syntax.block.block @ 0x108dcb990> 

alternative if open re-organization

unlike languages require put single class file same name (class block inside file block.py), python pretty flexible this.

you can put many classes in syntax.py , import syntax alone, access syntax.block (no imports in __init__.py required this)

# syntax.py class block(object):     pass class list(object):     pass 

then can use follows

import syntax b = syntax.block() l = syntax.list() 

Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

unity3d - Unity local avoidance in user created world -