問題描述:
自己編寫了若干個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')
這里有3個文件(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 *