长沙公司制作网站费用多少,python在线编程平台,可信网站查询官网,17网一起做网店潮汕池尾1、很多地方的文件夹都有__init__.py。网上一般都说#xff0c;有了这个东西会把它当作一个包#xff0c;否则import这个文件夹会出错。但这就好像和说python文件中如果有中文就要在开头写 # coding utf8这句话一样#xff0c;说话囫囵吞枣不带语境#xff0c;导致误会新手…1、很多地方的文件夹都有__init__.py。网上一般都说有了这个东西会把它当作一个包否则import这个文件夹会出错。但这就好像和说python文件中如果有中文就要在开头写 # coding utf8这句话一样说话囫囵吞枣不带语境导致误会新手。2、实际上空的__init__.py文件在python3.3以上没有卵的必要。如果用python3.3以上在__init__.py中写了内容那要这个文件还差不多否则来个空的__init__.py基本上是多此一举。就和在python3里面写# coding utf8多此一举一样。3、现在假设有这么一个目录里面有一个名叫pac的文件夹(里面没有__init__.py文件)一个pac.py的文件一个run.py文件在run.py里面写上 import pac3.1如果是python2,import pac实际上导入 的是pac.py,如果删除了pac.py那么就会报错因为不能能import 一个文件夹python2只能导入pac.py或者pac文件夹里面有__init__.py这种情况类似的你写pac.txt pac.ppt写个import pac也是不能导入的不认他。3.2如果是python3那么import pac情况不一样import pac到底导入的是个啥需要分很多种情况一种是pac文件夹里面有__init__.py一种是没有__init__.py,一种是连pac文件夹都没有一种是你当前文件夹下还有一个叫pac.py的文件一种是没这个pac.py的文件这一下子就多了五种情况了。3.2.1当写import pac时候优先查找有没有pac文件夹里面有__init__.py的这个文件夹如果找到了那么此时的pac代表的是有__init__.py的pac文件夹(包)。3.3.2如果3.2.1步骤没找到那么再去查找有没有一个叫pac.py的文件找到了那么 pac就代表pac.py了。3.2.3如果连pac.py都没找到,就去找一个文件夹这个文件夹不包含__init__.py如果找到了这个文件夹那么就会自动把这个文件夹当作包。3.2.4如果执行3.2.3也没找到pac那么就会报错了ImportError: No module named pac4.、总结一下python2和python3的查找顺序差不多但是python2少了3.2.3这一步即如果只有pac文件夹你就import pac那就会报错。有__init__.py的包叫做Regular packages 常规包python2只支持这个。没有__init__.py的包叫做Namespace package命名空间包python3.3以上支持这种。Namespace package这个东西是在pep420里面新增的。5、为了兼容python2和3那就有必要写__init__.py如果从不用python2也不知道__init__.py里面可以写什么东西只知道他是代表一个文件夹是一个包这一个作用的人那就不需要有这个文件。希望本文所述对大家程序设计有所帮助。