python模块导入方法解析

python中的模块引入问题特别乱,看了好多网上的介绍也是杂乱无张的.今天自己测试了一下,总结如下.如果有不对的不周全的地方.希望提醒.



假设我的文件目录如下:

-----module   总目录

  -------package1 子目录

        ----__init__.py

        ----basicclass.py

        ----basicdef.py

        ----firchildMain.py

  ------package2  子目录

        ----__init__.py

        ----secchildMain.py

  ------main.py   父目录下main文件


basicclass.py:

class Basic:
    def test(self):
        print "this is basic.Basic.test() method"  一个简单的class 中包含一个def


basicdef.py:

__all__ = [
    'myfirDef',
]

def myfirDef():
    print "this is my first def()"

def mysecDef():
    print "this is my second def()"   只包含两个基本方法的文件



1/ 首先先看同一目录下的引用 操作

firchildMain文件要访问 basicdef.py文件中的方法:

三中方法 1:import basicdef    basicdef.myfirDef()       basicdef.mysecDef()  即先导入模块 然后通过模块名称访问方法

                 2:from basicdef import myfirDef     直接调用myfirDef()方法   即直接导入模块中的方法

                 3: 用 from basicdef import *  这种导入形式 需要注意 只会导入basicdef中 __all__中声明的myfirDef()方法


firchildMain文件访问类文件basicclass.py中的Basic类:

    from basic import Basic  

    temp = Basic()

    temp.test()  即 通过模块导入类文件 通过初始化类来访问类中的方法   


2/其次看在父目录下的Main.py文件如何访问package1 下的两个文件:

from package1.basicclass import Basic

from package1 import basicdef   

注意这种访问形式必须在package1中加入__init__文件 以使package1成为一个模块 使其他模块对其引用.当然如果是第一种情况,同一个目录下的问家相互引用则不需要此文件.


3/最后看最麻烦的同级目录下的访问:即package2中的secchildMain.py文件访问package1中的文件的方法定义

需要引入sys模块 添加路径

import sys
sys.path.append('/home/pythonexe/module/package1')
from basic import Basic

import basicdef 

append 是自己本机的目录路径 你可以使用print sys.path 打印下自己的路径来进行添加.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值