文章目录
- 构造初始化文件结构,以此为例。
- 【1】导入同目录且同级下其他文件的函数(`c.py文件导入d.py文件的函数`)
- `(1)只引入d.py文件`
- `(2)直接引入函数`
- `(3)引入全部函数`
- 【2】导入同目录但不同级下的其他文件夹内文件(`c.py导入A文件夹内的a.py文件的函数`)
- `(1)只引入a.py文件`
- `(2)直接引入函数`
- `(3)引入全部函数`
- 【3】导入不同目录下的文件(`B文件中b.py导入A文件中a.py文件内的函数`)
- `(1)只引入a.py文件`
- `(2)直接引入函数`
- `(3)引入全部函数`
构造初始化文件结构,以此为例。
三级文件结构
- 其中文件夹A与B和文件c与d同级。
- 文件a和b同级。
- 为了方便测试,初始化文件a,b,c,d内容如下。
- 文件内函数用于测试输出。
- 下面对不同情况进行说明
【1】导入同目录且同级下其他文件的函数(
c.py文件导入d.py文件的函数
)
(1)只引入d.py文件
import d
def functionC():
print("引入functionC")
d.functionD()
- 调用d里面函数时需要 d.functionD()
- 也可以给引入的文件d重新命名
- 只需加一个as
import d as newNameD
def functionC():
print("引入functionC")
newNameD.functionD()
(2)直接引入函数
- 引入单个函数
from d import functionD
def functionC():
print("引入functionC")
functionD()
(3)引入全部函数
from d import *
def functionC():
print("引入functionC")
functionD()
【2】导入同目录但不同级下的其他文件夹内文件(
c.py导入A文件夹内的a.py文件的函数
)
(1)只引入a.py文件
- 调用函数需要 文件名.函数名 例如 a.functionA()
from A import a
def functionC():
print("引入functionC")
a.functionA()
(2)直接引入函数
- 调用直接写函数名就可以
from A.a import functionA
def functionC():
print("引入functionC")
functionA()
(3)引入全部函数
from A.a import *
def functionC():
print("引入functionC")
functionA()
【3】导入不同目录下的文件(
B文件中b.py导入A文件中a.py文件内的函数
)
前置条件:
- 【1】引入import sys 利用sys.path.append(“…/”)拼接路径
- 【2】将需要引入的文件夹设置为Sources Root
- 此例子将A文件夹设置为Sources Root
- New -> Mark Directory as -> Sources Root
(1)只引入a.py文件
- 调用 a.functionA()
import sys
sys.path.append("../A")
import a
def functionB():
print("引入functionB")
a.functionA()
(2)直接引入函数
import sys
sys.path.append("../A")
from a import functionA
def functionB():
print("引入functionB")
functionA()
(3)引入全部函数
import sys
sys.path.append("../A")
from a import *
def functionB():
print("引入functionB")
functionA()