当工程量比较大时,我们可以采取“函数封装”的方法实现函数的重复使用,避免“重复造轮子”。
手动创建一个包,只需进行以下 2 步操作:
在工作区下新建文件夹my_package
不限制文件夹的存储路径,但直接在工作区下新建比较方便。
至此,包的创建完成,之后只需添加包或者模块即可。
在my_package文件夹中新建文件module_1.py即可。
import 包名[.模块名 [as 别名]]
from 包名 import 模块名 [as 别名]
from 包名.模块名 import 成员名 [as 别名]
【注】
from module import count_letter_number as sum # 这里的sum是将封装好的函数名count_letter_number在调用时临时更改为sum
【注】 函数如果同名,后面的函数会覆盖前面的函数;模块下的函数名与被导入模块中的函数名相同时,则会执行模块下的函数,不会执行模块中的函数。
if __name__ == 'main'
把它看成一把闭加锁,使用它就相当于一把锁,把执行语句放在它下面可以阻止其它模块去执行这些内容。要想不被模块调用函数中的执行语句,就把函数名放在它下面,保护起来。
def location(x,y,xm,ym,alpha):
rotation=np.array([[math.cos(alpha),math.sin(alpha)],
[-math.sin(alpha),math.cos(alpha)]])
move=np.array([[x],[y]])
xy_b=np.matmul(rotation,move)
xy=np.array([[xm],[ym]])
xy_A=xy_b+xy
return xy_A
# 比如我们只想导入以上这一部分函数,不需要导入以下的main()函数,那么我们就把main()函数执行的返回值放在if里面.
# main()函数只能在本文件名中执行,不会被其他模块调用.
def main():
axy_location=location(3,5,5,10,pi/8)
print(axy_location)
if __name__ == '__main__':
main()
【注】两个函数不能互相导入,否则会陷入死循环!
[1] Python创建包,导入包(入门必读)
[2] python函数 - 14 函数的封装(模块)