python基礎學習(一)

来源:https://www.cnblogs.com/linmaomao/archive/2020/01/16/12203265.html
-Advertisement-
Play Games

一,Python介紹 1,python的出生與應用 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆(中文名字:龜叔)為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程式,作為ABC語言的一種繼承。 (龜叔:2005年加入谷歌至201 ...


一,Python介紹

1,python的出生與應用

  python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆(中文名字:龜叔)為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程式,作為ABC語言的一種繼承。  

(龜叔:2005年加入谷歌至2012年,2013年加入Dropbox直到現在,依然掌握著Python發展的核心方向,被稱為仁慈的獨裁者)。

2018年10月的TIOBE排行榜,Python已經占據第四的位置, Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。

https://www.tiobe.com/tiobe-index/

2019年06月16日

由上圖可見,Python整體呈上升趨勢,反映出Python應用越來越廣泛並且也逐漸得到業內的認可!!!

Python可以應用於眾多領域,如:數據分析、組件集成、網路服務、圖像處理、數值計算和科學計算等眾多領域。目前業內幾乎所有大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。

目前Python主要應用領域:

  • 雲計算: 雲計算最火的語言, 典型應用OpenStack
  • WEB開發: 眾多優秀的WEB框架,眾多大型網站均為Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系統運維: 運維人員必備語言
  • 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測
  • 圖形GUI: PyQT, WxPython,TkInter

Python在一些公司的應用: 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google廣告等項目都在大量使用Python開發
  • CIA: 美國中情局網站就是用Python開發的
  • NASA: 美國航天局(NASA)大量使用Python進行數據分析和運算
  • YouTube:世界上最大的視頻網站YouTube就是用Python開發的
  • Dropbox:美國最大的線上雲存儲網站,全部用Python實現,每天網站處理10億個文件的上傳和下載
  • Instagram:美國最大的圖片分享社交網站,每天超過3千萬張照片被分享,全部用python開發
  • Facebook:大量的基礎庫均通過Python實現的
  • Redhat: 世界上最流行的Linux發行版本中的yum包管理工具就是用python開發的
  • 豆瓣: 公司幾乎所有的業務均是通過Python開發的
  • 知乎: 國內最大的問答社區,通過Python開發(國外Quora)
  • 春雨醫生:國內知名的線上醫療網站是用Python開發的
  • 除上面之外,還有搜狐、金山、騰訊、盛大、網易、百度、阿裡、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各種各樣的任務。 

python發展史

  • 1989年,為了打發聖誕節假期,Guido開始寫Python語言的編譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
  • 1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠調用C語言的庫文件。從一齣生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.
  • Python 2.0 - October 16, 2000,加入了記憶體回收機制,構成了現在Python語言框架的基礎
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015
  • Python 3.6 - December 16,2016

2,python是什麼編程語言。

編程語言主要從以下幾個角度為進行分類,編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言,每個分類代表什麼意思呢,我們一起來看一下。

2.1 編譯型與解釋型。

編譯器是把源程式的每一條語句都編譯成機器語言,並保存成二進位文件,這樣運行時電腦可以直接以機器語言來運行此程式,速度很快; 

解釋器則是只在執行程式時,才一條一條的解釋成機器語言給電腦來執行,所以運行速度是不如編譯後的程式運行的快的. 

這是因為電腦不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進位的形式)

 

 

編譯型
優點:編譯器一般會有預編譯的過程對代碼進行優化。因為編譯只做一次,運行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立運行。
缺點:編譯之後如果需要修改就需要整個模塊重新編譯。編譯的時候根據對應的運行環境生成機器碼,不同的操作系統之間移植就會有問題,需要根據運行的操作系統環境編譯不同的可執行文件。

解釋型
優點:有良好的平臺相容性,在任何環境中都可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就可以,可以快速部署,不用停機維護。

缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

2.2動態語言和靜態語言
通常我們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。

(1)動態類型語言:動態類型語言是指在運行期間才去做數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變數指定數據類型,該語言會在你第一次賦值給變數時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其他的各種腳本語言如VBScript也多少屬於動態類型語言。

(2)靜態類型語言:靜態類型語言與動態類型語言剛好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程式時要聲明所有變數的數據類型,C/C++是靜態類型語言的典型代表,其他的靜態類型語言還有C#、JAVA等。

2.3強類型定義語言和弱類型定義語言

(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變數被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變數a,那麼程式根本不可能將a當作字元串類型處理。強類型定義語言是類型安全的語言。

(2)弱類型定義語言:數據類型可以被忽略的語言。它與強類型定義語言相反, 一個變數可以賦不同數據類型的值。

強類型定義語言在速度上可能略遜色於弱類型定義語言,但是強類型定義語言帶來的嚴謹性能夠有效的避免許多錯誤。另外,“這門語言是不是動態語言”與“這門語言是否類型安全”之間是完全沒有聯繫的!
例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。

通過上面這些介紹,我們可以得出,python是一門動態解釋性的強類型定義語言。

3,python的優缺點。

先看優點

  1. Python的定位是“優雅”、“明確”、“簡單”,所以Python程式看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。
  2. 開發效率非常高,Python有非常強大的第三方庫,基本上你想通過電腦實現任何功能,Python官方庫里都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大降低開發周期,避免重覆造輪子。
  3. 高級語言————當你用Python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節
  4. 可移植性————由於它的開源本質,Python已經被移植在許多平臺上(經過改動使它能夠工 作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程式無需修改就幾乎可以在市場上所有的系統平臺上運行
  5. 可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程式,從而向你的程式用戶提供腳本功能。

再看缺點:

  1. 速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑於使用Python的主要原因,但其實這裡所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須藉助測試工具才能體現出來,比如你用C運一個程式花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常誇張了,但是你是無法直接通過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程式速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種情況下,當然還是建議你用C去實現的。
  2. 代碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現。
  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是電腦程式設計語言解釋器用於同步線程的工具,使得任何時刻僅有一個線程在執行,Python的線程是操作系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程式的執行線程。即使在多核CPU平臺上,由於GIL的存在,所以禁止多線程的並行執行。關於這個問題的折衷解決方法,我們在以後線程和進程章節里再進行詳細探討。

當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。

由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器。

4,python的種類。

CPython

當我們從Python官方網站下載並安裝好Python 3.6後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。

CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。

IPython

IPython是基於CPython之上的一個互動式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。

CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。

PyPy

PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。

絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點

Jython

Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java位元組碼執行。

IronPython

IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的位元組碼。

 

小結:

  Python的解釋器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是通過網路調用來交互,確保各程式之間的獨立性。

二,python環境

windows下安裝Python(手動添加環境變數)以2.7版本舉例:

 

windows:

複製代碼
1 1、下載安裝包
2     https://www.python.org/downloads/
3 2、安裝
4     預設安裝路徑:C:\python27
5 3、配置環境變數
6     【右鍵電腦】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
7     如:原來的值;C:\python27,切記前面有分號
複製代碼

 

windows下安裝Python(自動添加環境變數)以3,.5版本的舉例:

1,官網下載:https://www.python.org/downloads/windows/ 

2,選擇版本。

3,自動添加環境變數。

4,更改完成。

5,點擊安裝即可。

linux:

1 無需安裝,原裝Python環境
2   
3 ps:如果自帶2.6,請更新至2.7

三,python基礎初識。

 1,運行python代碼。

在d盤下創建一個t1.py文件內容是:

print('hello world')

打開windows命令行輸入cmd,確定後 寫入代碼python d:t1.py 

您已經運行了第一個python程式, 即:終端---->cmd-----> python  文件路徑。 回車搞定~

2,解釋器。

上一步中執行 python d:t1.py 時,明確的指出 t1.py 腳本由 python 解釋器來執行。

如果想要類似於執行shell腳本一樣執行python腳本,例: ./t1.py ,那麼就需要在 hello.py 文件的頭部指定解釋器,如下:

#!/usr/bin/env python
  
print "hello,world"

 

如此一來,執行: ./t1.py 即可。

ps:執行前需給予t1.py 執行許可權,chmod 755 t1.py

 3,內容編碼。

python2解釋器在載入 .py 文件中的代碼時,會對內容進行編碼(預設ascill),而python3對內容進行編碼的預設為utf-8。

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多只能表示 256 個符號。

Bin(二進位) Oct(八進位) Dec(十進位) Hex(十六進位) 縮寫/字元 解釋
0000 0000 0 0 00 NUL(null) 空字元
0000 0001 1 1 01 SOH(start of headline) 標題開始
0000 0010 2 2 02 STX (start of text) 正文開始
0000 0011 3 3 03 ETX (end of text) 正文結束
0000 0100 4 4 04 EOT (end of transmission) 傳輸結束
0000 0101 5 5 05 ENQ (enquiry) 請求
0000 0110 6 6 06 ACK (acknowledge) 收到通知
0000 0111 7 7 07 BEL (bell) 響鈴
0000 1000 10 8 08 BS (backspace) 退格
0000 1001 11 9 09 HT (horizontal tab) 水平製表符
0000 1010 12 10 0A LF (NL line feed, new line) 換行鍵
0000 1011 13 11 0B VT (vertical tab) 垂直製表符
0000 1100 14 12 0C FF (NP form feed, new page) 換頁鍵
0000 1101 15 13 0D CR (carriage return) 回車鍵
0000 1110 16 14 0E SO (shift out) 不用切換
0000 1111 17 15 0F SI (shift in) 啟用切換
0001 0000 20 16 10 DLE (data link escape) 數據鏈路轉義
0001 0001 21 17 11 DC1 (device control 1) 設備控制1
0001 0010 22 18 12 DC2 (device control 2) 設備控制2
0001 0011 23 19 13 DC3 (device control 3) 設備控制3
0001 0100 24 20 14 DC4 (device control 4) 設備控制4
0001 0101 25 21 15 NAK (negative acknowledge) 拒絕接收
0001 0110 26 22 16 SYN (synchronous idle) 同步空閑
0001 0111 27 23 17 ETB (end of trans. block) 結束傳輸塊
0001 1000 30 24 18 CAN (cancel) 取消
0001 1001 31 25 19 EM (end of medium) 媒介結束
0001 1010 32 26 1A SUB (substitute) 代替
0001 1011 33 27 1B ESC (escape) 換碼(溢出)
0001 1100 34 28 1C FS (file separator) 文件分隔符
0001 1101 35 29 1D GS (group separator) 分組符
0001 1110 36 30 1E RS (record separator) 記錄分隔符
0001 1111 37 31 1F US (unit separator) 單元分隔符
0010 0000 40 32 20 (space) 空格
0010 0001 41 33 21 ! 嘆號
0010 0010 42 34 22 " 雙引號
0010 0011 43 35 23 # 井號
0010 0100 44 36 24 $ 美元符
0010 0101 45 37 25 % 百分號
0010 0110 46 38 26 & 和號
0010 0111 47 39 27 ' 閉單引號
0010 1000 50 40 28 ( 開括弧
0010 1001 51 41 29 ) 閉括弧
0010 1010 52 42 2A * 星號
0010 1011 53 43 2B + 加號
0010 1100 54 44 2C , 逗號
0010 1101 55 45 2D - 減號/破折號
0010 1110 56 46 2E . 句號
00101111 57 47 2F / 斜杠
00110000 60 48 30 0 數字0
00110001 61 49 31 1 數字1
00110010 62 50 32 2 數字2
00110011 63 51 33 3 數字3
00110100 64 52 34 4 數字4
00110101 65 53 35 5 數字5
00110110 66 54 36 6 數字6
00110111 67 55 37 7 數字7
00111000 70 56 38 8 數字8
00111001 71 57 39 9 數字9
00111010 72 58 3A : 冒號
00111011 73 59 3B ; 分號
00111100 74 60 3C < 小於
00111101 75 61 3D = 等號
00111110 76 62 3E > 大於
00111111 77 63 3F ? 問號
01000000 100 64 40 @ 電子郵件符號
01000001 101 65 41 A 大寫字母A 
01000010 102 66 42 B 大寫字母B
01000011 103 67 43 C 大寫字母C
01000100 104 68 44 D 大寫字母D
01000101 105 69 45 E 大寫字母E
01000110 106 70 46 F 大寫字母F
01000111 107 71 47 G 大寫字母G
01001000 110 72 48 H 大寫字母H
01001001 111 73 49 I 大寫字母I
01001010 112 74 4A J 大寫字母J
01001011 113 75 4B K 大寫字母K
01001100 114 76 4C L 大寫字母L
01001101 115 77 4D M 大寫字母M
01001110 116 78 4E N 大寫字母N
01001111 117 79 4F O 大寫字母O
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、訪問網路的兩種方法 1.get:利用參數給伺服器傳遞信息;參數為dict,然後parse解碼 2.post:一般向伺服器傳遞參數使用;post是把信息自動加密處理;如果想要使用post信息,需要使用到data參數 3.Content-Type:application/x-www.form-url ...
  • 前面我們在章節“Socket通訊探索(一)”中如何實現一個tcp連接,但是這僅僅是一個最初級的BIO實現,且沒有添加線程池,實際應用中很少採用這種方式,因為不得不考慮當大量的Tcp連接建立的時候,服務端如何安全穩定的運行?為什麼呢? 1、BIO實現方式,是阻塞式的(上一節最後面的實現方式雖然無數據的 ...
  • 引言 問題 現在我們使用通用的應用程式或庫來相互通信。例如,我們經常使用HTTP客戶機從web伺服器檢索信息,並通過web服務調用遠程過程調用。然而,通用協議或其實現有時不能很好地進行擴展。這就像我們不使用通用HTTP伺服器來交換巨大的文件、電子郵件消息和近乎實時的消息(如財務信息和多人游戲數據)一 ...
  • 一、什麼是socket? 當兩台電腦需要通信的時候,往往我們使用的都是TCP去實現的,但是並不會直接去操作TCP協議,通常是通過Socket進行tcp通信。Socket是操作系統提供給開發者的一個介面,通過它,就可以實現設備之間的通信。 二、TCP是如何通信的? TCP連接和斷開分別會存在3次握手 ...
  • 自JDK1.5引入註解後,他就成為了Java編程語言重要的組成部分,在開發過程中,我們也時常用到@Override、@ToString等這樣的註解。在這篇文章中,將介紹什麼是註解、為什麼引用註解、它是如何工作的、如何編寫自定義註解、以及如何測試自定義註解。 一、什麼是註解? 用一個詞就可以描述註解, ...
  • 1. 8086彙編開發環境搭建 在上篇博客中簡單的介紹了8086彙編語言。工欲善其事,必先利其器,在8086彙編語言正式開始學習之前,先介紹一下如何搭建8086彙編的開發環境。 彙編語言設計之初是用於在沒有操作系統的裸機上直接操作硬體的,但對於大部分人來說,在8086裸機上直接進行編程將會面臨各種困 ...
  • Go 是由 Google 設計的一門靜態類型的編譯型語言。它有點類似於 C,但是它包含了更多的優點,比如垃圾回收、記憶體安全、結構類型和併發性。它的併發機制使多核和網路機器能夠發揮最大的作用。這是 GoLang 的最佳賣點之一。此外,Go 速度快,表現力強,乾凈且高效。這也是 Go 如此吸引開發者學習 ...
  • 這篇文章最初是因為reboot的群里,有人去面試,筆試題有這個題,不知道怎麼做,什麼思路,就發群里大家討論 我想了一下,簡單說一下我的想法吧,當然,也有很好用的pyinotify模塊專門監聽文件變化,不過我更想介紹的,是解決的思路,畢竟作為面試官,還是想看到一下解決問題的思路,而且我覺得這一題的難點 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...