Python中跨脚本调用类与方法:同级与跨目录实现方案
本文详解如何在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 *
以上内容为本文的全部分享,希望对各位的学习有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













