Python中跨脚本调用类与方法:同级与跨目录实现方案

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13 | 2人浏览过
原创

本文详解如何在Python中调用其他脚本文件的类和方法。针对同级目录,通过import直接导入模块;针对非同级目录,利用sys模块添加路径后导入。结合testA、testB、testC示例,展示具体代码实现与日志记录细节,解决跨脚本调用难题。

本文深入解析在Python中调用其他脚本文件内类和方法的具体流程。文中通过详细的示例代码进行说明,旨在为读者的学习或工作提供具有实际价值的参考,建议相关读者仔细阅读并参考。

同级目录下的模块调用

问题背景:

开发者编写了多个独立的Python脚本文件。

在testC.py脚本中,需要调用testA.py和testB.py中定义的若干类及方法。应如何实现这一需求?

是否必须将这些脚本打包并安装后才能调用?实际上,无需如此繁琐。

此处有一个前提条件:testA.py、testB.py与testC.py这三个文件位于同一级目录下。

若文件不在同一目录,后续将补充介绍如何将相关路径纳入系统搜索范围。


# testA.py
# -*- coding: utf-8 -*-

class testA:
  def testA1():
    print("----testA1")

def testA2(str):
  print("testA2---: " + str)

# testB.py
# -*- coding: utf-8 -*-

def testB():
  print("this is testB")

# testC.py

import logging
from testA import *
from testB import *

logging.basicConfig(level=logging.INFO, filename='mylog.log')
logging.info('Starting program')
# 这个logging仅仅为了掩饰日志记录功能,和这里讨论的主题无关
logging.info("test testA.py")# 调用里面的类
testa = testA
testa.testA1()
# 调用里面的方法
testA2("How are you?")

logging.info("test testB.py")
testB()
logging.info('Ending program')

场景涉及三个文件:testA.py、testB.py和testC.py。

在testC.py中调用另外两个.py脚本的核心方法是使用import语句导入模块的全部内容。


from testA import *
from testB import *

关于函数调用的具体语法细节,请参考testC.py中的代码实现。

非同级目录的路径配置

遗留问题探讨:

如果目标脚本不在当前执行路径下,该如何处理?

可以使用sys模块,将目标路径添加到系统路径列表中即可解决。

例如,此处将testA.py放置在当前目录下的today文件夹中,而将testB.py放置在父级目录(上一级目录)的yesterday文件夹中。


import sys
sys.path.append(r'./today')
sys.path.append(r'./../yesterday')
from testA import *
from testB import *

以上内容为本文的全部分享,希望对各位的学习有所帮助,也欢迎大家继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表