類和正規表示式

2021-09-19 04:32:11 字數 1822 閱讀 4744

面對帝鄉的三要素:

封裝,繼承,多型;

封裝對類的資料的賦值、內部呼叫對外部的使用者都是透明的,這使得類成為乙個容器,裡面包含著類的資料和方法。

繼承乙個類可以派生出子類,這個父類的屬性、方法自動被子類繼承。

多型乙個介面、多種實現。乙個父類派生出不同的子類,且每個子類在繼承父類的方法的同時,又對父類的方法做了不同的實現,這就是同一種事物表現出多種形態。

python核心風格:避免用下劃線作為變數名的開始。

因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下劃線作為變數名的開始。一般來講,變數名_***被看作是「私有的」,在模組或類外不可以使用。當變數是私有的時候,用_*** 來表示變數是很好的習慣。因為變數名__***__對python 來說有特殊含義,對於普通的變數應當避免這種命名風格。

「單下劃線」

「單下劃線」 開始的成員變數叫做保護變數,意思是只有類物件和自類物件自己能訪問到這些變數。

例子:以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用「from *** import *」而匯入。

「雙下劃線」

「雙下劃線」 開始的是私有成員,意思是只有類物件自己能訪問,連子類物件也不能訪問到這個資料。

例子:以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(foo)代表python裡特殊方法專用的標識,如init()代表類的建構函式。

三維向量的運算:

『』』 三維向量 『』』

class vector3:

definit(self, x_ = 0, y_ = 0, z_ = 0): #建構函式

self.x = x_

self.y = y_

self.z = z_

def __add__(self, obj):      #過載+作為加號

return vector3(self.x+obj.x, self.y+obj.y, self.z+obj.z)

def __sub__(self, obj): #過載-作為減號

return vector3(self.x-obj.x, self.y-obj.y, self.z-obj.z)

def __mul__(self,n): #過載*作為點乘

return vector3(self.x*n, self.y*n, self.z*n)

def __truediv__(self, obj): #過載/作為除法

return vector3(self.x/n, self.y/n, self.z/n)

def __str__(self):

return str(self.x)+','+str(self.y)+','+str(self.z)

ifname== 「main」:

n = int(input(「請輸入乙個標量:」))

a,b,c = map(int,input(「請輸入第乙個向量:」).split())

v1 = vector3(a,b,c)

a,b,c = map(int,input(「請輸入第二個向量:」).split())

v2 = vector3(a,b,c)

print(「兩向量的加法:」,v1 + v2)

print(「兩向量的減法:」,v1 - v2)

print(「標量與向量的乘法:」,v1 * n)

print(「標量與向量的除法:」,v1 / n)

包裝類和正規表示式

1 integer 是int的包裝類。2 string str1 abc abc 常量池 首先去常量池中檢視是否 abc 如果沒有生成 abc string str2 new string abc str2 棧 abc 堆 1 split 切割 2 string string 手機號碼 patete...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 包裝類

正規表示式 正則包含正則語法字串.用於約定目標字串的規則 字符集 約定乙個字元的可選擇範圍 d 乙個字元,字元是0到9的某乙個 w 字元是 0到9 a z a z 之一 英文句號 表示匹配任何乙個字元 s 匹配空白 表示乙個 空格 tab 回車 換行 等 數量詞 利用數量詞可以約束左側字元出現的個數...