Python 导入引用其他文件的函数(持续更新)

文章目录

  • 构造初始化文件结构,以此为例。
    • 【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()

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年9月13日
下一篇 2023年9月15日

相关推荐