Python 初探

Python是。。?

  1. python是一种解释型脚本语言。

  2. python语言是一句一句执行的,可以再命令提示符中直接编写程序并随时获得结果

  3. python支持面向对象

我已经会c了,除此之外我还会java了,为嘛我还要学习python?

  1. python语言结构和语法十分简单,十分容易学习。(这两天基本就可以开始写python了,那个机器人项目就是用python写的。)

  2. python代码易于阅读,并且,易于维护(这一条是看来的,这可能只是一种感觉问题。也可能是因为,python代码的层次性非常弱,代码结构非常简单,再加上很容易阅读,因此容易维护)

  3. 标准库十分广泛。(那个机器人项目=。=居然只提供了python和c++库)

  4. 可移植性好。

  5. 可扩展性好。这一条也是看来的。python可以添加低层次的模块到python解释器,这些模块使得程序员可以添加或者定制自己的工具。(别的语言也可以啊)

python的语法鉴赏

变量

对变量的第一次赋值就是声明和定义。

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面向对象编程

与其他众多支持面向对象编程的编程语言一样,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()

python内置类属性

__dict__: 一个字典,由类的属性数据构成
__doc__: 类的文档字符串,是类的第一个逻辑行的由三个引号括起来的字符串
__name__: 类名
__module__: 类定义所在的模块
__bases__: 类的所有父类构成元素(包含了一个由所有父类组成的元组)

python的对象销毁机制

python拥有和java类似的垃圾回收机制。
python使用引用计数器来最总内存总的对象。
当对象的引用计数变为0的时候,对象占用的内存将被回收。但是回收发生在内存将要被写满的时候。

同事python还有一个循环引用垃圾收集器,即两个对象分别持有对方的引用,但是没有别的变量指向他们,因此他们也应该被垃圾回收所以,他们也应该被垃圾回收。因此python的垃圾回收机制由一个引用计数器和一个循环垃圾收集器组成。

python的对象中包含了内置的析构函数__del__,当对象的引用计数变为0时,析构函数将被执行。

类的继承

python支持多重继承:

class Foo (Parent1, Parent2, Parent3...):

父类的构造函数必须在子类中亲自调用:

class Foo(Foo2):
    def __init__(self):
        super().__init__(self);

mist14
45 声望8 粉丝

想养喵