1. 程式人生 > >牛客網 python (1)

牛客網 python (1)

1. python my.py v1 v2 命令執行指令碼,通過 from sys import argv如何獲得v2的引數值? 

sys.argv是傳遞給python指令碼的命令列引數【字串】列表
argv[0]為該指令碼自身路徑,其餘為命令列引數

2. 以”\0”結尾是C/C++中存在,在python中不存在

3. 

python中主要存在四種命名方式:

1、object #公用方法

2、_object #半保護

                 #被看作是“protect”,意思是隻有類物件和子類物件自己能訪問到這些變數,

                  在模組或類外不可以使用,不能用’from module import *’匯入。

                #__object 是為了避免與子類的方法名稱衝突, 對於該識別符號描述的方法,父

                  類的方法不能輕易地被子類的方法覆蓋,他們的名字實際上是

                  _classname__methodname。

3、_ _ object  #全私有,全保護

                       #私有成員“private”,意思是隻有類物件自己能訪問,連子類物件也不能訪

                          問到這個資料,不能用’from module import *’匯入。

4、_ _ object_ _     #內建方法,使用者不要這樣定義

4. Python3引數順序:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。

Python引數順序:必選引數、預設引數、可變引數和關鍵字引數。

5. å¾ç说æ

å¾ç说æ

å¾ç说æ

6.

7. 

__new__和__init__的區別,說法正確的是? 

正確答案: A B C D   

__new__是一個靜態方法,而__init__是一個例項方法
__new__方法會返回一個建立的例項,而__init__什麼都不返回
只有在__new__返回一個cls的例項時,後面的__init__才能被呼叫
當建立一個新例項時呼叫__new__,初始化一個例項時用__init__

根據官方文件:

  • __init__是當例項物件建立完成後被呼叫的,然後設定物件屬性的一些初始值。
  • __new__是在例項建立之前被呼叫的,因為它的任務就是建立例項然後返回該例項,是個靜態方法。

即,__new__在__init__之前被呼叫,__new__的返回值(例項)將傳遞給__init__方法的第一個引數,然後__init__給這個例項設定一些引數。

8. 協程是一種使用者態的輕量級執行緒,協程的排程完全由使用者控制。協程擁有自己的暫存器上下文和棧。協程排程切換時,將暫存器上下文和棧儲存到其他地方,在切回來的時候,恢復先前儲存的暫存器上下文和棧,直接操作棧則基本沒有核心切換的開銷,可以不加鎖的訪問全域性變數,所以上下文的切換非常快。

9. 

Python 中的 tuple 結構為 “不可變序列”,用小括號表示。為了區別數學中表示優先順序的小括號,當 tuple 中只含一個元素時,需要在元素後加上逗號。
詳情可參考文件中的解釋:

  • Using a trailing comma for a singleton tuple:a,or(a,)

10. 

Python 中字串的前導 r 代表原始字串識別符號,該字串中的特殊符號不會被轉義,適用於正則表示式中繁雜的特殊符號表示。

最典型的例子,如要輸出字串 \n,由於反斜槓的轉義,因此一般的輸出語句為:

1

print "\\n"

這裡的 \\ 將被轉義為 \ 。而採用原始字串輸出時,則不會對字串進行轉義:

1

print r"\n"