looking at python

Python 初探

Python是。。?

  1. python是一種解釋型腳本語言。java

  2. python語言是一句一句執行的,能夠再命令提示符中直接編寫程序並隨時得到結果python

  3. python支持面向對象c++

我已經會c了,除此以外我還會java了,爲嘛我還要學習python?

  1. python語言結構和語法十分簡單,十分容易學習。(這兩天基本就能夠開始寫python了,那個機器人項目就是用python寫的。)程序員

  2. python代碼易於閱讀,而且,易於維護(這一條是看來的,這可能只是一種感受問題。也多是由於,python代碼的層次性很是弱,代碼結構很是簡單,再加上很容易閱讀,所以容易維護)編程

  3. 標準庫十分普遍。(那個機器人項目=。=竟然只提供了python和c++庫)數組

  4. 可移植性好。數據結構

  5. 可擴展性好。這一條也是看來的。python能夠添加低層次的模塊到python解釋器,這些模塊使得程序員能夠添加或者定製本身的工具。(別的語言也能夠啊)app

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);
相關文章
相關標籤/搜索