第一篇博客,写得质量可能会不高,但希望能开个好头,努力成为优秀的程序员!

今天在恶补python基础知识,发现我对包,库,模块的定义非常模糊,于是我回头看了一下基础知识,也是一时兴起想让跟我一样一开始有些困惑的人避坑!

什么是包?

要想知道什么是包,得先了解一下模块的概念!

Python 包 迁移 python3.8导入包_右键


知道了模块,那紧接着看看包:

Python 包 迁移 python3.8导入包_python_02

上面是我从摘来的信息,感觉算是比较通俗易懂的解释了。但是我实操了一下,发现出大问题!

Python 包 迁移 python3.8导入包_Python 包 迁移_03


Python 包 迁移 python3.8导入包_语法错误_04

原因是我看了以上的介绍,然后去pycharm里直接新建了一个文件夹,然后在这个文件夹中又新建了__init__.py文件和其他的.py文件并写了一些简单的函数,然后在test.py文件中试着导入了一下,卧槽?语法错误?我佛了,我后来又在继续定义了一些包,无一例外都是语法错误

痛定思痛,我继续百度,但是还是不觉得自己错了,因为我的确有定义__inti__.py文件呀,我命名也没啥问题呀…知道我想再来试一次的时候,发现pycharm右键新建文件或文件夹时可以直接建一个包!!!!上图!

Python 包 迁移 python3.8导入包_右键_05


我去,发现新大陆,然后我试着点击了它,命名为People,直接就生成了一个包的雏形,自带__init__.py文件!

Python 包 迁移 python3.8导入包_右键_06


然后我按照刚刚5次失败的手法再次试了一次,并在测试文件test.py中试着导入了一下,额…一步到位!!!导入我的包终于没有红线了!

Python 包 迁移 python3.8导入包_Python 包 迁移_07


Python 包 迁移 python3.8导入包_Python 包 迁移_08


但是大家注意一下:

包里面的.py文件最好不要与里面的函数重名,否则会出现TypeError**

我这里本想来一个错误示范,但发现好像成功了,额,原因我再找找!

下面开始技术总结(其实没啥技术…):

自定义包:

PS:我用的是Anconda自带的python3.7,pycharm是2019.3的社区版
(1)在想创建包的目录下,右键New选择里面的Python Package,命名,然后你就可以看到该目录下多了一个包,里面自带__init__.py文件,这个文件可以为空,也可以写点东西,看自己需要吧。
(2)创建完包之后,可以在里面定义多个.py文件,写上你觉得需要的函数,因为都可以被导入到你想要的文件里!

导入包

导入包有三种方法(都是我百度看到的)
(1)特定导入
import Packagename.filename
from Packagename import filename
通过这种方法导入可以直接通过 filename.function() 的方法实现特定函数的调用
(2)整体导入
import Packagename
from Packagename import
这两种方法比较简单粗暴,但是如果该包下面有多个子包,这种方法会显得比较繁琐
(3)通过sys导入
这个我还不太清楚,就不误人子弟了

第一次写博客,感觉质量真的不高,希望大家不要嫌弃,我争取以后写出一些高质量博客来,谢谢!