物件導向最主要的是(類和繼承)
類:用來描述相同屬性和方法的集合
class
employee:
''' python多行注釋,在import引入類之後,可以用help(classname)來檢視類的方法和屬性,這段注釋就是該類的說明,會一起顯示。
this is a test demo class
'''classtr="itis a test class"
def__init__
(self, name, pay):
self.name=name
self.pay=pay
defhello
(self):
''' say hello
'''print self.name
print
"say hello"
# python json.py
# python
python 2.7
.6 (default, jun 22
2015, 17:58:13)
[gcc 4.8
.2] on linux2
or"license"
for more information.
>>>
import json #使用類就引入類,python類相當於python的乙個模組
>>> worker = json.employee('xiaoming', 10000)
>>> type(worker)
'instance'>
>>> worker.hello
0x7f34422f82d8>>
>>> worker.hello()
xiaoming
say hello
>>> worker2=json.employee('zhangqiaong',2)
>>> worker2.hello()
zhangqiaong
say hello
>>> help(json.employee)
>>> help(worker2)
python內建類屬性
__dict__ 類的屬性(包含乙個字典,由類的資料屬性組成)
__doc__ 類的文件字串
__name__ 類名
__moudle__ 類定義所在的模組(類的全名是'__main__classname',如果類位於乙個匯入模組mymod中,那麼'classname__moudle__' 等於 mymod)
__bases__ 類的所有父類構成元素
類的繼承:
class
parent:
parentattr=100
def__init__
(self):
print
"呼叫父類構造方法"
defparentmethod
(self):
print
"呼叫父類方法"
defsetattr
(self, attr):
parent.parentattr = attr
defgetattr
(self):
print
'父類屬性:', parent.parentattr
class
child
(parent):
#繼承父類
def__init__
(self):
print
"呼叫子類構造方法"
defchildmethod
(self):
print
'呼叫子類方法 child method'
>>>
import json
>>>
from json import parent,child
>>> p1=parent()
呼叫父類構造方法
>>> p1.parentmethod()
呼叫父類方法
>>> p1.getattr()
父類屬性: 100
>>> p1.setattr(200)
>>> p1.getattr()
父類屬性: 200
>>> p2=child()
呼叫子類構造方法
>>> p2.childmethod()
呼叫子類方法 child method
>>> p2.parentmethod()
呼叫父類方法
>>> p2.getattr()
父類屬性: 200
class
child
(parent):
#定義子類
def__init__
(self):
parent() #呼叫父類的構造方法
print
"呼叫子類構造方法"
defchildmethod
(self):
print
'呼叫子類方法 child method'
>>>
from json import parent, child
>>> p2=child()
呼叫父類構造方法
呼叫子類構造方法
類的私有屬性不能在類外部訪問或直接使用
__private_attr
class
parent:
#定義父類
parentattr=100
__six = 'man'
#定義私有屬性
def__init__
(self):
print
"呼叫父類構造方法"
defshowsix
(self):
print self.__six
from json import* #匯出json檔案包的所有類(乙個檔案包含多個類)
globals
() 列印全域性變數
locals
() 列印區域性變數
python 筆記4 類(物件導向?)
1 定義 init 為建構函式 其中 metaclass type 確定使用新式類,python3.0 以後就不用考慮新式類的問題,類的定義 顯然在類的定義中每乙個函式引數列表的第乙個都應該是self,self 也就是物件本身,而 self 也是區分方法和物件函式的標誌。2 訪問許可權 通過上面的案...
JAVA基礎 方法 物件導向筆記4
類名首字母大寫,如果類名有許多單詞組成,每個單詞的首字母要大寫 方法名的首字母應該小寫 這也是約定俗成的規矩 檔名要和含有public的那個類的名稱相同 基礎資料型別的變數只佔一塊記憶體 引用資料型別的變數只佔兩塊記憶體 其實方法的返回值也是存在乙個臨時的記憶體的區域中 返回值是乙個普通的型別 當把...
python物件導向基礎 python物件導向基礎
面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...