在python中模块的导入与c语言当中头文件的包含类似,可以通过导入模块来调用python自有、开发者自己写的模块或类方法,进而使用其包含的函数/方法。
模块导入的方法:
-
导入整个模块:import moudle_name
引用模块所含方法:moudle_name.function_name -
导入模块中的多个或单个方法:from moudle_name import function_name
引用模块所含方法:function_name -
导入模块中的所有方法:from moudle_name import *
引用模块所含方法:function_name -
将自定义脚本中的类、方法或者变量以模块的方式导入并调用
base_class.py
class Base_Class():
def __init__(self):
print("This is a class:Base_Class")
print("This func is a child_func of Base_Class and named '__init__'")
def base_func_a(self, a, b):
print("a={},b={},a+b={}".format(a,b,a+b))
base_var.py
import os
import sys
# 当前脚本绝对路径
src_fullpath = sys.argv[0]
# 当前工程目录绝对路径
work_fullpath = os.getcwd()
base_import_00.py
data = "2022/07/04"
time = "13:30"
class Base_Class_01():
def __init__(self):
print("This is a class:Base_Class_01")
print("This func is a child_func of Base_Class_01 and named '__init__'")
def base_func_a_01(self, a, b):
print("a={},b={},a*b={}".format(a,b,a*b))
base_import_01.py
class Base_Class_02():
def __init__(self):
print("This is a class:Base_Class_02")
print("This func is a child_func of Base_Class_02 and named '__init__'")
def base_func_a_02(self, a, b):
print("a={},b={},a/b={}".format(a,b,a/b))
导入同级目录只含变量的文件:import5_01.py
# 导入同级目录只含变量的文件
# import * 导入 base_var.py中的所有变量
from base_var import *
# import 变量名 导入 base_var.py中的指定变量
# from base_var import src_fullpath
print(src_fullpath)
print(work_fullpath)
# 导入同级目录只含有一个类的文件,*导入所有,也可以import 后接指定的类名导入指定类
from base_class import Base_Class
a = Base_Class() # 实例化类
a.base_func_a(10, 125) # 类方法调用
调用其他目录自定义文件:import5_02.py
# 调用其他目录自定义文件
from base_import_test.base01.base_import_00 import *
print(data, time)
b = Base_Class_01()
b.base_func_a_01(1,5)
调用上层目录自定义文件:import5_03.py
# 调用上层目录自定义文件
import sys
sys.path.append('../') #将上层目录加入系统路径
from base_import_01 import *
print(data2, time2)
a = Base_Class_02()
a.base_func_a_02(5,4)