p119:self引數正是方法和函式的區別。方法(更專業一點可以成為繫結方法)將它們的第乙個引數繫結到所屬的例項上,因此無需顯式提供該引數。當然也可將特性繫結到乙個普通函式上,這樣就不會有特殊的self引數了。
讓方法變成私有:在名字前面加上雙下劃線
class secretive:
def __inaccessible(self):
print("bet you can't see me")
def accessible(self):
print("the secret message is:")
self.__inaccessible()
s = secretive()
s.__inaccessible() \\此行報錯
s._secretive.inaccessible
s.accessible()
超類:將其他類名寫在class語句後的圓括號內可以指定超類
class filter:
def init(self):
self.blocked=
def filter(self,sequence):
return [x for x in sequence if x not in self.blocked]
class spamfilter(filter): #spamfilter是filter的子類
def init(self): #重寫filter超類中的init方法
self.blocked=['spam']
f = filter()
f.init()
f.filter([1,2,3])
s = spanfilter()
s.init()
s.filter(['spam','eggs','bacon','spam『])
這裡用提供新定義的方式重寫了filter的init定義。filter方法的定義是從filter類中繼承的。
多個超類,多重繼承,若有相同名字的不同方法,先繼承的類會覆寫後繼承的類中的方法。
class calculator:
def calculate(self,expression):
self.value = eval(expression)
class talker:
def talk(self):
print("value is",self.value)
class talkingcalcultor(calculator,talker):
pass
tc = talkingcalcultor()
tc.calculate('1+2*3')
tc.talk()
檢視方法是否存在
hasattr(tc,『talk』)
檢視介面是否可呼叫
hasattr(getattr(tc,『talk』),『call』)
捕獲多個異常並列印
try:
x=5y=0
print(x/y)
except (zerodivisionerror,typeerror) as e:
print(e)
深度學習課堂筆記 5 14
1 引數過多,訓練難度大 2 非凸優化問題,區域性最優影響迭代 3 梯度消失or 4 引數解釋困難 5 過擬合or欠擬合 梯度消失or 產生的原因 1 bp法先天問題 2 初始權重帶來的影響 3 啟用函式選擇不當 4 梯度流動帶來的影響 網路結構本身的問題,如cnn 5 損失值過大帶來的影響 資料集...
python學習筆記 Python基礎
雲計算web開發 django框架 科學計算 人工智慧 常用到的庫有numpy pandas matplotlib 等等 系統運維 金融 圖形gui google 豆瓣 知乎 facebook 主要特點是 解釋性 動態語言 強型別定義語言和弱型別定義語言。解釋型 python擁有良好的相容性,在安裝...
Python學習筆記(Python基礎)
1 資料型別和變數 1 字串是以單引號 或雙引號 括起來的任意文字,比如 abc xyz 等 2 如果 本身也是乙個字元,那就可以用 括起來,比如 i m ok 包含的字元是i,m,空格,o,k這6個字元。3 如果字串內部既包含 又包含 可以用轉義字元 來標識 print i m ok 結果為i m...