python是一种解释型脚本语言。java
python语言是一句一句执行的,能够再命令提示符中直接编写程序并随时得到结果python
python支持面向对象c++
python语言结构和语法十分简单,十分容易学习。(这两天基本就能够开始写python了,那个机器人项目就是用python写的。)程序员
python代码易于阅读,而且,易于维护(这一条是看来的,这可能只是一种感受问题。也多是由于,python代码的层次性很是弱,代码结构很是简单,再加上很容易阅读,所以容易维护)编程
标准库十分普遍。(那个机器人项目=。=竟然只提供了python和c++库)数组
可移植性好。数据结构
可扩展性好。这一条也是看来的。python能够添加低层次的模块到python解释器,这些模块使得程序员能够添加或者定制本身的工具。(别的语言也能够啊)app
对变量的第一次赋值就是声明和定义。编程语言
num = 1; nums = 1, 2, 3; array = 'a', "b", 'sa', 3; num = array[1]; // num = "b" num = array[3]; // num = 3
经过上面的例子能够看出来,变量的类型在运行时是能够发生改变的。
另外,python中没有字符类型。事实上也不须要有。函数
这至关于数组的概念,可是python的列表中容许出现不一样类型的元素。
例如:
list1 = ['a', 'b', "c", 123 ]
python列表的索引从0开始,而且能够一次访问其中的多个元素。
例如:
sublist = list[0:4] sublist = list[0:]
上述语句访问的是0, 1, 2, 3四个元素。
还能够直接删除列表中的一个元素:
del list[2];
对列表的操做还有:
list.append(o) # 列表尾追加元素o list.count(o) # 列表的元素个数 list.extend(o) # 将新列表的值所有追加到原列表中 list.index(o) # 返回列表中第一次出现这个值得位置 list.insert(index, o) # 插入o到位置index list.pop(o=list[-1]) # 移除列表的一个元素,并返回该元素的值 list.remove(o) # 移除列表中第一个这样的值 list.reverse() # 将列表中的值倒置 list.sort([compFunc]) # 链表排序,compFunc用于指定比较函数,可选
python中还有元组(不容许修改的列表)、字典等数据结构。。不码这儿了,语法什么的大差不离
与其余众多支持面向对象编程的编程语言同样,python使用class关键字来定义一个类。
class Foo: id = 1 def __init__(self, name): self.name = name id = id + 1 def displayself(self): print self.name, Foo.id
python中self是指向这个对象本身的引用。他必须做为每一个方法的第一个参数。
每一个类的属性分为两部分,一部分是在全部方法声明以前声明的变量,他们做为全部对象共享的一个静态变量,全部对象都持有相同的这个属性,而且均可以改变他的值。在方法中声明的属性是这个类的私有属性,每一个对象拥有不一样的私有属性。
foo1 = Foo("foo1") foo2 = Foo("foo2")
foo1.displayself() foo2.displayself()
__dict__: 一个字典,由类的属性数据构成
__doc__: 类的文档字符串,是类的第一个逻辑行的由三个引号括起来的字符串
__name__: 类名
__module__: 类定义所在的模块
__bases__: 类的全部父类构成元素(包含了一个由全部父类组成的元组)
python拥有和java相似的垃圾回收机制。
python使用引用计数器来最总内存总的对象。
当对象的引用计数变为0的时候,对象占用的内存将被回收。可是回收发生在内存将要被写满的时候。
同事python还有一个循环引用垃圾收集器,即两个对象分别持有对方的引用,可是没有别的变量指向他们,所以他们也应该被垃圾回收因此,他们也应该被垃圾回收。所以python的垃圾回收机制由一个引用计数器和一个循环垃圾收集器组成。
python的对象中包含了内置的析构函数__del__,当对象的引用计数变为0时,析构函数将被执行。
python支持多重继承:
class Foo (Parent1, Parent2, Parent3...):
父类的构造函数必须在子类中亲自调用:
class Foo(Foo2): def __init__(self): super().__init__(self);