python類支持多重繼承孽椰,當(dāng)使用多重繼承時(shí),需要注意:
如果一個(gè)方法從多個(gè)超類繼承(也就是說你有兩個(gè)具有相同名字的不同方法),那么必須要注意一下超類的順序(在class語句中):先繼承的類中的方法會(huì)重寫后繼承的類中的方法。
python魔法方法吁峻,就是在方法名前后加雙下劃線“__”,例如:
class FooBar:
def __init__(self, value = 42):
self.somevar = value
注意:Python中有一個(gè)魔法方法叫做"_del"在张,也就是析構(gòu)方法用含。它在對(duì)象就要被垃圾回收之前調(diào)用。但發(fā)生調(diào)用的具體時(shí)間是不可知的瞧掺。所以建議讀者盡力避免使用"_del"函數(shù)耕餐。
Python中類的繼承凡傅,如果一個(gè)子類直接重寫了構(gòu)造器的方法辟狈,這將恢復(fù)完全覆蓋了在超類中構(gòu)造器方法的作用。如果要想保留超類構(gòu)造器方法的作用:調(diào)用超類構(gòu)造方法的未綁定版本夏跷,或者使用 super函數(shù)哼转。
_init_ 方法為一個(gè)類創(chuàng)建后第一個(gè)執(zhí)行的方法。
什么是self 槽华? 它是類實(shí)例自身的引用壹蔓。其它面向?qū)ο笳Z言通常使用一個(gè)名為 this 的標(biāo)識(shí)符。
class SongBird(Bird):
def __init__(self):
Bird.__init__(self) # 調(diào)用超類構(gòu)造器方法
self.sound = 'Squawk !'
def sing(self):
print self.sound
__metaclass__ = type
class SongBird(Bird):
def __init__(self):
super(SongBird.self).__init__() # super函數(shù)只在新式類中起作用
self.sound = 'Squawk !'
def sing(self):
print self.sound
解決python文件顯示中文build錯(cuò)誤問題:
需要在程序的第一行或者第二行聲明編碼猫态,就可以解決問題佣蓉。
# coding =encoding name 或者 # -*- coding: -*-
下面的鏈接是原文地址 http://www.python.org/dev/peps/pep-0263/
raw_input ,python3.0版本后用input替換了raw_input
python編程時(shí)亲雪,每一行語句結(jié)束時(shí)直接換行勇凭,不需要像C,Java那樣用“义辕;”結(jié)尾虾标;但是同一行書寫多個(gè)預(yù)計(jì)時(shí),可以用“ ; "分割
注意:在python語言中灌砖,賦值并不是直接將一個(gè)值賦給一個(gè)變量璧函,對(duì)象是通過引用傳遞的傀蚌。
python不支持類似 x++ 或 --x 這樣的前置/后置自增/自減運(yùn)算。
專用下劃線標(biāo)識(shí)符:
_xxx #不用 ' from module import * ' 導(dǎo)入
_xxx_ #系統(tǒng)定義名字
_xxx #類中的私有變量名
核心風(fēng)格建議:避免用下劃線作為變量名的開始蘸吓,因?yàn)橄聞澗€對(duì)解釋器有特殊的意義善炫,而且是內(nèi)建標(biāo)識(shí)符所使用的符號(hào),我們建議程序員避免用下劃線作為變量名的開始库继。一般來講销部,變量名 _xxx 被看做是“私有的”,在模塊或類外都不可以使用制跟。當(dāng)變量是私有的時(shí)候舅桩,用_xxx來表示變量是很好的習(xí)慣。因?yàn)樽兞炕蝾愅獠豢梢允褂糜昱颉.?dāng)變量是私有的時(shí)候擂涛,用_xxx來表示變量是很好的習(xí)慣。因?yàn)樽兞棵鸰xxx_對(duì)python來說有特殊含義聊记,對(duì)于普通的變量應(yīng)當(dāng)避免這種命名風(fēng)格撒妈。
python 變量量無需事先聲明,也無需聲明類型排监。
提醒:print語句默認(rèn)在輸出內(nèi)容末尾后加一個(gè)換行符狰右,而在語句后加一個(gè)“逗號(hào)”可以避免這個(gè)新聞。