zoukankan      html  css  js  c++  java
  • 日积月累从细节做起

    从不是一个认真和注意细节的人,但是往往却要将一个小小的看似已成规律的问题弄出个所以然来,就因为这样,往往折腾很长时间。

    一件事情,要么不做,要么做好,做好一件事情是非常难得,但是至少在做事情的时候,将这些蕴含的一些流程和原理搞清楚,这对我这种没有追求的人,也就足矣。

        其实有一些问题,我在以前的博客里面写过,也提到过,但是我没有多想,只是为了说明一个问题,或者是得到答案,但是这似乎不是一种好的方法。好的方法应该是问题解决了,然后将自己视为一个评论家,大谈阔论一番,这样也能表达自己的见解,不管错对,但是尽量以自己的观点去表达,按自己的理解去组织语言,好好畅所欲言一番,一次例会上,领导也说道了评论这个词,我们不仅仅要将自己的东西弄好,还要敢于评论那些不好,这样才能更加全面的认识某一个东西。要作为一个评论家,谈何容易,这不是一朝一夕之功,更何况,一个评论家还要有渊博的学识,不然自己都不知道别人写的错对,那还如何评论,评论不是挑是非,只是别人的一家之言而已,也只不过是自己的看法而已,所谓横看成岭侧成峰,出发点不一样,对一个东西的评价也不一样,是非曲直都会有,关键就看如何去分析,如何去对待。

        当然这里我不是想要评价一个东西,只是想谈一些自己的想法,人有的时候就是闲的无聊,居然能在工作的时候想一些事情,如果非要找一个理由,我觉得”在工作中思考,是为了更好的工作“,暂且用这个牵强附会的说法吧。

        有的时候发现工作很被动,受制于人,如果米国人不给提供一些资料,我就无从下手,久而久之觉得这不是一种办法,人应该在工作几年后学会淡定,而我却不是一个淡定的人,因为米国人给的东西是我们的第一手资料,这样我们才能深入开展下来的工作,就好比,一个刚学Java开发的人,JDK半天都没配置好,还怎么开发?例子可能不怎么样,但也算中肯,因为当年我学习Java的时候,遇到过,所以记忆幽深,至今不忘,当然当时并不知道配置这个是为了什么,但是经过自己的不断学习,终于知道了原因,因为知道了为什么,所以在以后的使用过程中,也就不在出现问题。

         话题又扯远了,还是回来吧,近日拿到了一个python的包,但是不知怎么部署才好,如果是C#的dll,这个我们都应该很清楚,添加引用即可,而python的包就是一个文件夹,里面有很多py结尾的文件,记得以前在博客中写过python搜索的顺序,在这里我想说下自己的想法,其实很多语言在在使用其他库或者包或者dll里面的功能,这些语言都有自己寻找这些的顺序,其实我觉得这个问题我们应该很早的就发现,而不是现在,所以我只能用惭愧这两字描述自己,我们写程序的时候,因为是二次开发,其实很多时候都是调用系统的功能或者第三方SDK的功能,但是当程序运行的时候是如何和这些连接起来呢?了解了这个,那么我们在部署应用程序的时候也就有了一定的规律可循,要不然在部署程序的时候或者引用其jar包,类库的时候出现找不到的情况。

          我相信我要表达的意思已经很清楚了,想要说的也差不多了,再啰嗦一句,在使用任何东西的时候都多思考,思考其运行机制等,当然这是我从程序这上面说的,其它的我也没资格去讨论。

      现在就说我问题的解决方法吧,我是直接将python的包放到了site-packages文件夹下,然后在python命令行中import的时候就可以找到了,不信的话,自己尝试下!

    以图为证:

    python搜索的顺序是:

    1,当前路径 (以及从当前目录指定的sys.path)(这句是我猜测的在python.exe运行的时候,会自动把当前目录添加到sys.path中);

    2,然后是PYTHONPATH;

    3,python编译器所在的位置

         既然知道这个顺序了,那我们就应该知道如何做了,在这里要提到一个 .pth的文件,一般我们可以将自己用到的包的地址写在这个文件中,然后将这个文件放到site-packages目录下,当python.exe在运行的时候发现了site-packages下的.pth文件会将里面的路径包含到python的搜索顺序中。如果注意看的话,ArcGIS的先关包的位置就是放在这个pth文件中的。

    上一幅图看下sys.path,包含哪些东西,不只有什么想法:

    都说到这个份上了,我就多说写,python的模块和包的区别。

    模块

    一个.py文件就是一个python模块。

    我上面提到了包,但是一直没说,其实就是一个文件夹,这个文件夹用有一堆py文件也就是模块,当然这些py文件可能是有某种关系的,在这个文件夹中在放上一个__init__.py文件,这样这个文件夹就构成了一个python 包,python包可以嵌套,包里面的我们就说是字包,是不是跟java的package有点像,没错,看来学东西的时候多思考,多联系,用以学过的东西其实也是可以解释的。__init__.py文件可以为空,不过,一般它时而会包含一个__version__的变 量,保存这个包的版本信息,另外还有一个__all__的列表,包括要import 时要导入的模块。当然,__init__.py的内容不是绝对的,也可以什么都不写,还可以加上其它任何自己认为需要的代码。

    python如何导入

    相信你已经见过了import 和from... import,但是它们是有区别的:

    import module会导入module这个模块里的所有标识,只要import了,我们就可以引用它的任何公共的函数、类或属性,但是这些标识现在都在module名字空间下,调用的时候必须用这种写法moudle.add()等。

    from module import *也会导入module中所有标识,但是标识不在module名字空间下了,也就是任何只要不是以”_”开始的东西都会被导入,它放到在当前名字空间里。并且,这句话执行完之后,当前名字空间中并不存在 module这个标识,也就是任何只要不是以”_”开始的东西都会被导入。from ... import ...语句还可用于从一个模块中导入部分标识,写法是"from module import 标识名",这样就只有指定的标识被导入,这种方式可以精确控制导入的内容,防止导入整个模块造成名称污染。

    我说的说完了,你们扔砖吧!

  • 相关阅读:
    专职DBA-MySQL体系结构与基本管理
    JSON
    MIME类型
    文件上传下载
    response常用的方法
    2020.11.27小记
    HTTP请求状态码
    1561. Maximum Number of Coins You Can Get
    1558. Minimum Numbers of Function Calls to Make Target Array
    1557. Minimum Number of Vertices to Reach All Nodes
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/3074504.html
Copyright © 2011-2022 走看看