python实现跨文件调用函数方法

1.当文件在同一目录层级时,可以直接使用import方法导入文件
python实现跨文件调用函数方法_第1张图片

2.当文件在不通目录层级时
利用os模块和importlib方法

import os
import importlib.util

root_path = os.path.realpath(os.path.dirname(os.path.dirname(__file__)))  # 项目的根目录
project_path = os.path.join(root_path, 'untitled1')  # 项目所在目录
temp_path = os.path.join(project_path, 'temp')  # 目标文件上级目录
file_a_path = os.path.join(temp_path, 'file_a.py')  # 目标文件目录


def get_func(path, func_name):
    if not os.path.isfile(path):
        raise IOError
    # 根据提供的目标文件路径,返回模块的说明  spec_from_file_location(module_name, file_path)
    module_desc = importlib.util.spec_from_file_location("_", path)
    # 根据传入的模块说明返回引入的模块 module_from_spec(模块说明)
    moudle_spec = importlib.util.module_from_spec(module_desc)
    # exec_module执行加载方法
    module_desc.loader.exec_module(moudle_spec)
    if hasattr(moudle_spec, func_name):
        return getattr(moudle_spec, func_name)


func = get_func(file_a_path, "print_func")
# 用()执行方法
func()

你可能感兴趣的:(python,python,开发语言,后端)