跟着销售学python系列(1)--实践项目骨架(1)

   暂时不对自己的背景做任何的交代,  为什么写这个系列, 参加YC培训课最大的总结, 就是别写别思考了。  

    以前的写的,慢慢搬家过来吧。

学习计划:

     ✅  learn  python the hard way , nosetest的学习。

     ✅   head frist the python 第二章


    知识点:

             nosetest

  因为是看了两部书,关于项目骨架有点乱,其实想了想,head first thepython 只是说了构建包,发布包。 如建立setup.py, 

      pip setup.py  sdist

     pip  setup.py install

 这样系统会建立bulid,bin等文件, 但是这是项目骨架吗?

书中没有说到, 另一本书, learn python the hard way , 提到的项目骨架也没有说撒是项目骨架。 

百度了一下,也没有具体的定义, 不如自己定义,就是一个python模块正常所需要的模块框好了。


project(主目录)

           - lixiang(系列目录)

                   -  setup.py

                   _   projectname

                          __init__.py

                   -   bin

                     -docs

                      -tests

                          __init__.py

                          name_test.py

   以上是一个项目骨架的结构, 也许这是一个行业的惯例,也许是一个作者的习惯,作为一个新手,这个地方不影响继续学习,存疑吧,不深究。(?)

 macos  下面的命令:

 mkdir project

cd  project

mkdir  lixiang

cd  lixiang

mkdir projectname

mkdir bin

mkdir  tests

mkdir docs

touch  projectname/__init__.py

touch  tests/__init__.py

  目录下, 建立setup.py , 看这里。 

   tests 建立test.py .

    : __init__.py 是什么?

      学习一个原则: 吸引你进行下一步操作吗?   不影响

       这个百度一下理解超过10分钟。

 百度一下:

在 python 中,如果当前目录中存在有 __init__.py 文件,则表示该目录为一个包(package),在包中,引用同级目录或子目录中的其它模块非常简单,直接使用 import 语句即可

同级目录下,没有__init__.py  , 一样可以导入。

  学海无涯, 你要问为什么这个有这个功能? 这个就是python的语法结构了, 研究这个似乎不是我们学习的主要目的,有些东西的理解必须等到自己全盘了解才知道。

  学会克制好奇心也是非常重要的

   根据书中, 输入nosetests, 发现几个问题, 在test目录下,或者删除__init__.py , test.py , nosetests的traceback 都没反应。。

-------------------------------------------------------

Ran 0 tests in 0.000s

OK

 运行0个tests测试,这应该是缺乏test.py的原因。

 加入test.py ,

from nose.tools import *

import printlist

def setup():

       print "setup!"

def teadown():

      print "tear down!"

def test_basic():

     print " I  RAN!"

    测试nosetests  发现了

======================================================================

ERROR: Failure: ImportError (No module named printlist)

-------------------------------------------------------

 在test目录上看看,nosetests

----------------------------------------------------------------------.

Ran 1 test in 0.007s

 看到了吗, 测试了一个test. 我们来删除printlist下的 __init__.py

rm -f  printlist/__init__.py 

发现没有出错

继续:ls -R


 发现

./printlist:

__init__.pyc

还是依旧无任何影响,__init__.py, 存在有何意义?  

不懂,继续吧。

可以留下来, 在社区中提问, 还说继续前进吧。

 看到书中的一句话, 有没有实际的代码给读者看。 作者回答很多python项目用了类似的结构,这个证明了,项目骨架没有统一的格式。 

本课未解决: __init__.py 存在的 意义??

你可能感兴趣的:(跟着销售学python系列(1)--实践项目骨架(1))