python學習筆記(四)

來源:互聯網
上載者:User

標籤:end   構造   elf   eth   成員   lin   self   變數   span   

25、 三引號

python中用三引號可以引用大段文字,且中間可以書寫任意單雙引號

26、 原意字元

當一段字串中有太多需要轉義的符號時,可以使用原意字元,避免總是轉義 print(r”this is a newline simbol:\n.and that is a simbol:*”)  雙引號中原樣顯示。

27、 python自省

dir(對象)---可以查看此對象有哪些方法和屬性

dir(__builtins__)查看有哪些內建函數

help(命令)---查看命令的使用方式

print(logging.__file__)----查看logging模組的位置

28、 print的參數

print(value1,…,sep= ‘ ’,end=’\n’,file=sys.stdout,flush=false)

預設是各參數之間空格分割,最後一個參數之後換行,如果有其他列印需求,可以修改參數。

29、 列印出注釋文字

def print_abc:

“””列印出abc字串”””

print(“abc”)

print(print_abc.__doc__)

說明:函數或者類的說明文檔,必須在函數或類定義的行後面,且在第一個語句的前面。

30、 行串連符 \

當輸出一個字串,但是字串太長,在代碼中要換行,但又不能在顯示中換行時,使用行串連符“\”

print(“這是一個很唯美的故事,\

故事的女主人公很美。”)

31、 靜態方法、類方法

建立靜態方法:

@staticmethod

def method_name()

建立類方法:

@Classmethod

def method_name()

靜態方法和類方法既可以供類調用,又可以供類的執行個體調用。

而執行個體方法只能供類的執行個體調用,不能供類調用。

class Name:

@staticmethod

def name1():

print(“name1”)

@classmethod

def name2():

print(“name2”)

def name3():

print(“name3”)

 

Name.name3()    #調用會出錯

Name().name3()   #執行個體化的調用,正確

 

35、類的變數、執行個體的變數

  python的類變數和C++的靜態變數不同,並不是由類的所有對象共用。類本身擁有自己的類變數(儲存在記憶體),當一個TestClass類的對象被構造時,會將當前類變數拷貝一份給這個對象,當前類變數的值是多少,這個對象拷貝得到的類變數的值就是多少;而且,通過對象來修改類變數,並不會影響其他對象的類變數的值,因為大家都有各自的副本,更不會影響類本身所擁有的那個類變數的值;只有類自己才能改變類本身擁有的類變數的值

Class Name:

test = 1

def __init__(self):

self.test1 = 2

a = Name

b = Name()

print(a.test, b.test, b.test1)   #如果a.test1則報錯

類可以訪問類的變數,不能訪問執行個體的變數。執行個體可以訪問類的變數和執行個體的變數。

36、 繼承和調用

class Parent:

def __init__(self):

self.name = ‘name’

 

class Child(Parent):

name1 = ‘name1’

def __init__(self):

self.name2 = ‘name2’

def print1(self):

print(self.name1) #正確,因為init函數中沒有成員變數name1,self就指向類的變數name1。如果類的變數和成員變數中有相同的name1,則指向成員變數name1.

 

class Child(Parent):

name3 = ‘name3’

def print1(self):

print(self.name3) #正確,沒有定義執行個體的變數。self指向類的變數。

print(self.name1) #正確,沒有定義類的成員變數,self指向父類的成員變數

37、執行系統命令

(1)import os

os.system(“command”)

僅僅在一個子終端運行系統命令,而不能擷取命令執行後的返回資訊 

(2)os.popen()

tmp = os.popen(‘ls *.sh‘).readlines() 

該方法不但執行命令還返回執行後的資訊對象。好處在於:將返回的結果賦於一變數,便於程式的處理

(3)使用模組subprocess

import subprocess    

p = subprocess.Popen(‘ls *.sh‘, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)    

print p.stdout.readlines()    

for line in p.stdout.readlines():    

    print line,    

retval = p.wait()

 

好處在於:運用對線程的控制和監控,將返回的結果賦於一變數,便於程式的處理。

當執行命令的參數或者返回中包含了中文文字,那麼建議使用subprocess,如果使用os.popen則會出現錯誤

python學習筆記(四)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.