转载:
python 一个.py文件如何调用另一个.py文件中的类和函数_STR_Liang的博客-CSDN博客
我整理了一下博主关于避坑的内容:
避坑指南
-
1、导入的文件 或者 包名等 需要符合Python命名规则,比如不能有 - 之类的符号,不能是纯数字
-
2、如果导入的不是一个包,而是一个Python文件,那么不需要在后面加.py 如果加了,就会报错!
-
3、append 里面 不需要加r 也可以
3.1、在win10环境下,加r可以不用修改原始的 反斜杠路径符号
3.2、如果不加r 就必须要改为 双反斜杠 \ 或者是 单斜杠 / 不然就会被认为是转义符
-
4、导入之后,会立即执行导入库的代码,如果封装了函数且调用了,并且没有使用 if name == “main”: 进行调用,那么函数也会被执行
-
5、python import模块时, 是在sys.path里按顺序查找的。sys.path是一个列表,里面以字符串的形式存储了许多路径。使用A.py文件中的函数需要先将他的文件路径放到sys.path中’’’
-
6、若是从其他文件中调用函数,则要添加路径,并有 from 文件名 import 函数名。注意,一定要先from再import否则会报错,另外文件名和函数名都不需要写后缀。
在同一个文件夹下
调用函数:
A.py文件:
def add(x,y):
print('和为:%d'%(x+y))
B.py文件:
import A
A.add(1,2)
调用类:
A.py文件:
class A:
def __init__(self,xx,yy):
self.x=xx
self.y=yy
def add(self):
print("x和y的和为:%d"%(self.x+self.y))
B.py文件:
from A import A
a=A(2,3)
a.add()
或
import A
a=A.A(2,3)
a.add()
在不同文件夹下
调用函数:
A.py文件路径:C:\Users\Desktop\Sample_Entrophy
函数名称:sampen(L, m, r)
import sys
sys.path.append(r'C:\Users\Desktop\Sample_Entrophy')
from Sample_Entrophy_function import sampen
L = [1,2,1,1,3,1,1,4,1,3,1,1]
m = 7
r = 3
S = sampen(L, m, r)
错误示范:
import sys
sys.path.append(r'C:\Users\Desktop\Sample_Entrophy')
import sampen from Sample_Entrophy_function
# 正确写法:
# from Sample_Entrophy_function import sampen
L = [1,2,1,1,3,1,1,4,1,3,1,1]
m = 7
r = 3
S = sampen(L, m, r)
# 上述错误示范报错
import sampen from Sample_Entrophy_function
^
SyntaxError: invalid syntax
调用类:
A.py文件的文件路径:E:\PythonProject\winycg
B.py文件:
import sys
sys.path.append(r'E:\PythonProject\winycg')
'''python import模块时, 是在sys.path里按顺序查找的。
sys.path是一个列表,里面以字符串的形式存储了许多路径。
使用A.py文件中的函数需要先将他的文件路径放到sys.path中'''
# 这里在备注一下自己遇到的坑
# 1、导入的文件 或者 包名等 需要符合Python命名规则,比如不能有 - 之类的符号
# 2、如果导入的不是一个包,而是一个Python文件,那么不需要在后面加.py 如果加了,就会报错...
import A
a=A.A(2,3)
a.add()