学习python后对于怎么将其他项目中的文件在另外一个项目中引用不慎了解
后来经过一番查询和摸索,有了以下的方法解决:
import sys
# 当前项目路径,.\\funtion为你要引用的其他项目的路径
sys.path.append('.\\funtion')
再后来,对于怎么引用同一项目中,其他文件中的函数和变量,不甚明了,经过一番查询,得到了一些思路,但还是觉得,以下这种方式不太简便:
# 将当前项目function路径下的addition文件引用进来
from function import addition
# 引用addition中的add函数
addition.add(2,3)
# 引用addition中的list数组
print(addition.L[0])
上述方法太过繁琐,有点类Java的方式,感觉应该还有更加方便的方法,经过一番摸索,得出了以下的方法:
# 将当前项目function路径下的addition文件中所有的函数和变量都引用进来
from function.addition import *
不过这样也有一个弊端,就是当你命名的函数和变量与被引用的文件中的函数和变量重名时,基于你引用文件和定义函数、变量的顺序不同,该函数和变量将会被后继定义的函数和变量所覆盖,如下所示:
#addition文件
# 递归函数
def adds(x, y):
if x == 1:
return 1
return x * adds(x - 1, y)
# list数组
L = ['a', 'b', 'c', 'd']
#main文件
# 将当前项目路径下的addition文件中所有的函数和变量都引用进来
from function.addition import *
# 调用addition文件中的函数和变量
print("调用addition文件中的函数和变量")
print(L[0])
print(adds(9, 10))
L = ['e', 'f', 'g', 'h']
def adds(x, y):
if y == 1:
return 1
return x * adds(x, y - 1)
# 调用本文件中的函数和变量
print("调用本文件中的函数和变量")
print(adds(9, 10))
print(L[0])
运行结果:
所以在使用
from function.addition import *
的时候,一定要避免重名,或者你知道并且需要覆盖引用文件中的函数和变量。