发布新日志

  • python语言

    2009-05-27 14:03:21

    python从一开始就是用类设计的,它是一门真正的纯面向对象的语言。

    python是一门支持脚本编程的语言
      用它来写脚本确实很棒的,你甚至会想用python脚本代替掉你所有的比处理文件,shell脚本和一些简单的程序。但是它远远超出了一门脚本语言。

    1)对于python来说,作用域是通过缩进来确定的。
     列如:
    ##interpreter:if.py
    response="yes"
    if response=="yes":
       print"affirmative"
       val=1
    print "continuing……"
    ##~
    <#代表注释>

    2)python的if语句不一定要括号,"条件语句"使用冒号结束.

    3)通常python每行只有一个语句(你也可以使用分号在一行上放置多个语句并把它们分开)

    4)内置容器
    容器之于编程语言的重要地位是通过把他们构建入语言核心来使其得到承认的:链表和关联数组(即映射表,字典,哈希表)都成了基本的数据类型.这使这门语言更加优雅.

    5)python不需要任何类型说明,对象只要有名字就可以了,python会根据你使用它们的方式判断出其类型.

    6)函数
    在python里创建一个函数,需要用到def关键字,接下来是函数名和参数列表,然后是一个冒号表示函数体的开始.
    由于是弱类型语言,所以函数签名的里并没有类型信息,它只是指定了函数名称和参数标签但是没有返回类型和参数类型.

    7)python支持操作符重载,当+操作运用到不同的数据类型时,自动转意.

    8)字符串
    .1可以用单引号,双引号来表示字符串.可嵌套.
    .2三个双引号连用.这种语法把他们之间的所有东西都引起来,包括新的行.
    print """You're just poundingtwococonut halves together."""
    .3一个字符串右边的r字符表示这个字符串是个"raw字符串",也就是说按照字面来解释反斜杠,所以你就不用再加个额外的反斜杠了.
    print r'c:\python\lib\utils'
    .4字符串替换,对于任何字符串,只需在字符全后面加上一个"%"和用来做替代的值.
    print "The number is %d" % val

    9)类
    用class关键字定义类
    class XXX:
         def XXX:
    self代替this指代的参数(当然可以自定义,一般默认的都认识)
    class Simple:
       def __init__(self, str):
         print"Inside the Simple constructor"
         self.s = str
       def show(self):
         def show(self):
       def showMsg(self, msg):
         print msg + ':',
         self.show()

    if __name__ == "__main__":
      x = Simple("constructor argument")
      x.show()
      x.showMsg("A message")
    ##~
    上面的第一个方法有它的特别之处,所有以双下划线开始并且结束的标示符都是特殊的。对于上面的情况来说,它定义了构造函数,当创建对象的的时候它会自动被调用,就像C++和Java那样。然而,在上例下半部分你会看到,对象的创建就像一次使用类名称的函数调用。Python宽松(spare)的语法会让你觉得C++或者Java里的new 关键字其实都不是必需的。
     


    后一部分的所有代码被一个if语句隔开(set off) 了,这个if语句检查__name__这个东西是不是等于__main__。再说一次,双下划线意味着特殊的名字。使用if的原因是因为每一个文件都有可能在另外的程序里被用作库模块(马上就会讲到模块)。在那种情况下,你只需要那些定义好了的类,而不想让文件下半部分的代码被执行。这个特殊的if语句只有当你直接运行这个文件的时候才为真,也就是说,如果你在命令行输入:
    Python SimpleClass.py
    然而,如果这个文件是被另外一个程序作为一个模块引入的,那__main__的代码就不会被执行。

    10)继承
    而对Python来说,使用继承的唯一理由是为了继承一个实现——为了重用属于基类的代码。
    如果你打算从某个类继承下来,你必须告诉Python把那个类引入的你的新文件。Python像Java那样对命名空间(name spaces)进行强有力的(aggressively)控制,而且风格也和Java类似(尽管如此,Python 保留着它一贯的简单性)。每次创建一个文件的时候,你就隐含的创建了一个和该文件同名的模块(类似于Java里的package)。这么一来,package关键字在Python里也不需要了。当你想要使用某个模块的时候,只要用import关键字,并且给出模块的名字就可以了。Python会搜索PYTHONPATH,Java用同样的方法搜索CLASSPATH(但是由于某种原因,Python并没有像Java那样的缺陷),然后读取搜索到的文件。要引用某个模块的函数或者类,你需要给出模块名称,接着是一个句号,然后是函数名或者类名。如果你觉得给出确切的名称太麻烦,你可以用:
    #from module import name(s)
    这里,“names(s)”可以是由逗号分开的一组名称。
    from SimpleClass import Simple

    class Simple2(Simple):
       def __init__(self, str):
Open Toolbar