zoukankan      html  css  js  c++  java
  • 我的Python之旅——《Dive Into Python》读书笔记(一)

    Python最近大红大紫了,在朋友建议下决定看一看。这也是我第一次接触脚本语言,决心好好看一把。
    下了Python,安装一切顺利,还找了一本书《Dive Into Python》,英文版的,不太妙,不过连猜带蒙再加金山词霸也勉强能够应付,凑合吧。
    第一个例子
    1:def buildConnectionString(params):
    2: """Build a connection string from a dictionary of parameters.
    3: Returns string."""
    4: return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
    5:if __name__ == "__main__":
    6: myParams = {"server":"mpilgrim", /
    7:  "database":"master", /
    8:  "uid":"sa", /
    9:  "pwd":"secret" /
    10:  }
    11: print buildConnectionString(myParams)
    按作者的意思,我试着理解了一下。
    第1行挺像个函数,估且认为是函数申明吧
    那2、3行应该是注释错不了,这么通顺还带标点符号的句子打死我也不信是Python的语句:)
    第4行有点难理解了。是要把一个什么东西join起来呢?(k,v)像是一个二维数组,其值来自params.items(),前面的"%s=%s"应该是一种join的形式,剩下的什么意思呢?不明白了,估且放下。
    第5行,一个变量是否等于一个字符串?但是变量没见申明啊??
    6-10行,总算看到buildConnectionString的params了,“:”隔开的应该是二维数组的两维,每行后面的“/”是什么呢?去掉了也不会出错。
    另外一个麻烦的问题是,函数和if都没有限定作用域,它们到底到哪一句结束呢?系统是通过什么来确定作用域的?统统放下不管了,继续下一步。
    接下来讲了函数的申明,很容易理解,倒是2.2.1比较有意思,比较了一下各种语言的数据类型(大概作者也是想通过这种比较来体现Python的过人之处吧),有静态类型语言、动态类型语言、强类型语言、弱类型语言,比较结果是只有

    Python既具有VBScript这样动态类型语言的方便性,又具有Java这样强类型语言的安全性。很不错,知道为什么选它了吧?:)
    文档功能。把注释带入运行时,虽然现在还不清楚这样有什么实质性的好处,不过怎么说都又多了一个选择Python的理由呢。
    import语句:导入一个模块。开始觉得这段程序怎么看都像面向过程的,因为没见到熟悉的类申明在什么地方。但是看到2.4节我开始明白些什么了,Every thing is an object!模块也是,甚至函数也是。那么用传统的方式理解,这个

    模块应该是被当成一个类了吧,当import(或别的什么时候?)生成了一个对象。还有什么别的方法构造一个类吗?不清楚,看看后文再说。
    2.5节,终于讲到作用域的问题了。居然靠缩进的空白来限制作用域,这意味着有相同缩进的语句是属于同一代码块的,相当于用{}括了起来。的确是很有创意的想法,不过我怎么都觉心里不踏实呢?还不太习惯呵呵。后面讲了这样做的

    好处,想想也确实是这样,这样的代码块划分方式强迫你必须进行适当的缩进,那无形中就帮助Coder规范了代码。有什么办法,不这么做你就得不到正确的结果。
    2.6节,关于__name__这个内置属性。当作为一个模块导入的时候它的值是模块所在的文件名,但你运行模块时,它的值就是"__main__",这样创建测试程序就变得比较容易了,道理和java类中的main大致是一样的。

  • 相关阅读:
    【个人实战】作品展播BI大屏【部分见github主页】
    JAVA设计模式之单例(singleton)
    你所不知道的redis安装方法,穿一手鞋,看一手资料
    zookeeper实现分布式锁总结,看这一篇足矣(设计模式应用实战)
    JAVA设计模式之状态模式(state)
    JAVA设计模式之适配器模式(adapter)
    JAVA设计模式之构建器模式(builder)
    Redis实现分布式锁(设计模式应用实战)
    JAVA设计模式之享元模式(flyweight)
    JAVA设计模式之组合模式(composite)
  • 原文地址:https://www.cnblogs.com/yaoxing/p/2179666.html
Copyright © 2011-2022 走看看