python基礎之核心風格

一.語句和語法

  • #:註釋java

  • \:轉譯回車,繼續上一行,在一行語句較長的狀況下可使用其來切分紅多行,因其可讀性差因此不建議使用
  • ;:將兩個語句鏈接到一行,可讀性差,不建議使用
  • ::將代碼的頭和體分開
  • 語句(代碼塊)用縮進方式體現不一樣的代碼級別,建議採用4個空格(不要使用tab)
  • python文件以模塊的方式組織,編寫一個.py結尾的文件實際上就寫了一個模塊

二.變量定義與賦值

  • a=1:1爲內存變量存放於內存中,a爲變量的引用,python爲動態語言,變量及其類型均無需事先聲明類型
  • 與c的區別:a=1無返回值

注:python

  • c語言變量聲明必須位於代碼最開始,並且要在全部語句以前
  • c++,java能夠隨時隨地聲明變量,可是必須聲明變量名字和類型
  • python也能夠隨時隨地聲明變量,可是變量在被定義時,解釋器會根據等式右側的值來決定其類型
  • 變量必須先賦值,纔可以使用

三.內存管理

內存管理:

  • 變量無須指定類型
  • 程序員無須關心內存管理
  • 變量會被自動回收
  • del可以直接釋放內存對象(減小對象的引用計數)

引用計數:

  • 增長引用計數
  1. 對象被建立並將其引用賦值給變量,引用計數加1(例a=1)
  2. 同一個對象的引用又賦值給其它變量,引用計數加1(例b=a)
  3. 對象做爲參數被函數調用,引用計數加1(例int(a)
  4. 對象成爲容器對象中的一個元素,引用計數加1(例list_test=['alex','z',a])
  • 減小引用計數
  1. a做爲被函數調用的參數,在函數運行結束後,包括a在內的全部局部變量均會被銷燬,引用計數減1
  2. 變量被賦值給另一個對象,原對象引用計數減1(例b=2,1這一內存對象的引用只剩a)
  3. 使用del刪除對象的引用,引用計數減1(例del a)
  4. a做爲容器list_test中的一個元素,被清除,引用計數減小(例list_test.remove(a))
  5. 容器自己被銷燬(例del list_test) 

注意:python內存回收交給一段獨立的代碼即垃圾回收器(包含引用計數器和循環垃圾收集器),引用計數在歸零時並不會當即清除(可能有循環調用)程序員

沒必要糾結循環引用收集,只需記住垃圾回收器幫你自動清理內存。函數

簡單例子

複製代碼
x=1 #建立內存變量1,將變量1的引用傳給x,此刻1的引用計數爲1
y=x #1的引用計數增長到2


y=2 #建立新的內存變量2,將變量2的引用傳給y,本來指向1的y,此刻給了2,因此1的引用計數減小到了1

del x #刪除了內存對象1的引用x,此刻1再無引用,此刻它就成了python解釋器回收的目標
複製代碼

 

四.python對象

python中使用對象模型來存儲數據,用來生成數據類型的工廠函數本質上是類,新建數據的結果本質是實例化一個對象測試

對象有三種特性spa

  • 身份:內存地址,能夠用id()確認,id相同的就是同一個對象
  • 類型:能夠用type()查看,返回值的type也是對象

五.標識符

定義:容許做爲名字的有效字符串集合debug

  • 名字必須有實際意義,可讀性好
  • 首字母必須是字母或下劃線(_)
  • 剩下的字符能夠是字母和數字或者下劃線
  • 大小寫敏感
  • 兩種風格:conn_obj或ConnObj
  • 不能使用關鍵字,不能使用內建

關鍵字表:code

內建:由解釋器自動導入(提供基本功能),能夠看做全局變量,對象

六.專用下劃線標識符

  • _xxx:不能用from module import *導入
  • __xxx__:系統定義名字
  • __xxx:類中私有變量

下劃線對於解釋器來講有特殊意義,並且是內建標識符所使用符號,不建議自定義變量如下劃線開頭blog

可是若是是類中的私有變量,__xxx將會是一個好習慣

補充:

  1. 系統變量__name__會根據python文件被加載方式的不一樣得出不一樣的值
    1. python文件被看成模塊導入:__name__=模塊名或者文件名
    2. python文件被執行:__name__='__main__'
  2. 在咱們使用python編寫一個軟件時,應該只有一個主程序中包含大量頂級代碼(就是沒有縮進的代碼,

    python解釋器讀取到頂級代碼會當即執行),其餘.py文件應該只有少許頂級代碼,全部功能都應該封裝

    在函數或類中

  3. 一般在文件結尾結合__name__變量,編寫測試代碼 

七.編寫模塊基本風格

  1. 標題
  2. 文檔註釋
  3. 模塊導入
  4. 變量定義
  5. 類定義語句
  6. 函數定義語句
  7. 主程序
  8. 測試代碼

八.示範

複製代碼
 1 #_*_coding:utf-8_*_
 2 #!/usr/bin/env python
 3 
 4 '''
 5 This is an example module
 6 '''
 7 
 8 import sys,os
 9 
10 debug=True
11 
12 class Test:
13     '''
14     test class
15     '''
16     pass
17 
18 def main():
19     '''
20     test func
21     :return: 
22     '''
23     pass
24 
25 if __name__ == '__main__':
26     main()
複製代碼
相關文章
相關標籤/搜索