一、同一个文件夹下不同模块函数调用
备注:py文件都可以当做一个模块
1 针对一个模块的函数调用
a : import 模块名
模块名.函数名
b: from 模块名 import 函数名 (as 别名)
python调用另一个.py文件中的类和函数
A.py文件如下:
def add(x,y): print(‘和为:%d’%(x+y))
在B.py文件中调用A.py的add函数如下:
import A A.add(1,2)
或
from A import add add(1,2)
二、同一个文件夹下不同模块类调用
A.py文件如下:
class A1:
def __init__(self,xx,yy):
self.x=xx
self.y=yy
def add(self):
print("x和y的和为:%d"%(self.x+self.y))
在B.py文件中调用A.py的add函数如下:
from A import A1 #实例化一个对象 a=A1(2,3) #使用实例调用函数 a.add()
或
import A a=A.A1(2,3) #实例化一个对象 a.add() #使用实例调用函数
三、不同目录下模块调用
方法:将被调用的模块文件夹路径添加到环境变量
如存在以下目录结构:需要在test.py中调用calultater.py:
3.1. 通过绝对路径调用(不太推荐)
(1). 获取calulator.py的绝对路径
(2). 通过import sys 将路径添加上
示例:
import sys sys.path.append(r'D: 5_test_softwareproject2module') #添加绝对路径 from calulator import * #*是对应的函数
3.2. 通过相对路径调用 (推荐用法)
import sys from os.path import dirname,abspath project_path = dirname(dirname(abspath(__file__))) #__file__用于获取文件的路径,abspath(__file__)获得绝对路径; #dirname()用于获取上级目录,两个dirname()相当于获取了当前文件的上级的上级即示例中project2 sys.path.append(project_path+r'module') #路径拼接成D: 5_test_softwaremudule from calulater import *
预备知识:
为啥项目文件目录下都有一个__init__.py的文件,即使是空的,有__init__.py的叫包,没有这个文件叫目录。
file 常量,当前文件的相对路径
os.path.abspath(filepath):将相对路径转换成绝对路径
os.path.dirname(filepath):获取父路径名,若嵌套多次,则可以获取基于上一次的父路径名
sys.path.append(path):将路径path动态设置成环境变量,在退出python环境后自己添加的路径就会自动消失
sys.path将返回一个存有环境变量的列表,可查看目前的环境变量
import sys import os project_path = dirname(dirname(abspath(__file__))) #__file__用于获取文件的相对路径,abspath(__file__)获得绝对路径; #dirname()用于获取上级目录,两个dirname()相当于获取了当前文件的上级的上级即示例中project2 sys.path.append(project_path+r'module') #路径拼接上calultater.py的文件夹路径即mudule,使用append()将其添加到环境变量,这样就能import调用了,在退出python环境后自己添加的路径就会自动消失 from calulater import * 或者import calulater



