python各层级目录下import方法代码实例

yipeiwu_com6年前Python基础

这篇文章主要介绍了python各层级目录下import方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

以前经常使用python2.现在很多东西都切换到了python3,发现很多东西还是存在一些差异化的。跨目录import是常用的一种方法,并且有不同的表现形式,新手很容易搞混。有必要这里做个总结,给大家科普一下:

1 同级目录下的调用:

同级目录下的调用比较简单,一般使用场景是不同类的相互调用。不用考虑路径问题,常用的格式是:from file import * 或者 from file import class/function 等。

下面以一个例子作为说明:

程序结构:

➜ dir_test git:(master) ✗ tree
.
├── pycache
│  └── test1.cpython-37.pyc
├── dir1
│  └── test3.py
├── test1.py
└── test2.py

代码:

from test1 import *
# the below is also ok
#from test1 import dir_test

def test_file2():
  print("this is test file2")

dir_test()
test_file2()

2 子目录下的调用:

子目录下的函数调用,正常的情况下,需要包含子目录的,常用的格式如下:form dir1.file import * 或者: from dir1 import file等。

下面以一个例子说明:

➜ dir_test git:(master) ✗ tree
.
├── pycache
│  └── test1.cpython-37.pyc
├── dir1
│  ├── pycache
│  │  └── test3.cpython-37.pyc
│  └── test3.py
├── test1.py
└── test2.py

代码:

from test1 import *
# the below is also ok
#from test1 import dir_test

from dir1.test3 import *

def test_file2():
  print("this is test file2")

dir_test()
dir1_test()

3 上级目录下的调用:

上级目录调用要比上两种复杂,这里要用到sys函数,首先要在将要调用的文件下面建一个空文件:init.py 然后在调用这个文件的文件里面添加:sys.path.append("…"),才可以调用成功:

下面是一个例子:文件结构:

➜ dir_test git:(master) ✗ tree
.
├── pycache
│  └── test1.cpython-37.pyc
├── dir1
│  ├── init.py
│  ├── pycache
│  │  ├── init.cpython-37.pyc
│  │  └── test3.cpython-37.pyc
│  └── test3.py
├── dir2
│  └── test4.py
├── test1.py
└── test2.py

代码:

#!python3

import sys
sys.path.append("..")
from dir1.test3 import *
#import dir1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

解决pycharm运行出错,代码正确结果不显示的问题

解决pycharm运行出错,代码正确结果不显示的问题

昨天手贱,觉得自己装的Python版本太低,重新安装了一个,安装完成后运行出现错误: Fatal Python error: initfsencoding: unable to load...

使用Python和Scribus创建一个RGB立方体的方法

使用Python和Scribus创建一个RGB立方体的方法

使用 Scribus 的 Python 脚本编写器功能,开发一个显示 RGB 色谱的 3D 立方体。 当我决定这个夏天要玩色彩游戏时,我想到通常色彩都是在色轮上描绘的。这些色彩通常都是使...

python异步任务队列示例

很多场景为了不阻塞,都需要异步回调机制。这是一个简单的例子,大家参考使用吧复制代码 代码如下:#!/usr/bin/env python# -*- coding: UTF-8 -*-im...

Python检测字符串中是否包含某字符集合中的字符

目的   检测字符串中是否包含某字符集合中的字符 方法   最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器 复制代码 代码如下: def containAny(seq,ase...

如何关掉pycharm中的python console(图解)

如何关掉pycharm中的python console(图解)

安装好jupyter notebook后,在pycharm中无论运行什么样的python脚本,都会默认使用python的console运行,这种console非常恶心,前几行全是费话。而...