介紹
學習記錄。。。。
目錄:
面向對象進階文法部分
字段
方法
屬性
經典類 新式類類的特殊成員反射
類
普通字段
靜态字段
普通方法
類方法
靜态方法
普通屬性
私有屬性
普通字段 屬于對象, 執行個體變量,存在每個執行個體裡面,進行執行個體的時候,開辟一個執行個體對象,
靜态字段 屬于類,類變量, 記憶體中存在類裡面,沒執行個體化,也存在。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>class</code> <code>Animal:</code>
<code> </code><code>def</code> <code>__init__(</code><code>self</code><code>,name):</code>
<code> </code><code>self</code><code>.name</code><code>=</code><code>name</code>
<code> </code><code>hobbie </code><code>=</code> <code>'meat'</code>
<code> </code><code>@</code><code>classmethod</code> <code>##類方法,不能通路執行個體變量</code>
<code> </code><code>def</code> <code>talk(</code><code>self</code><code>):</code>
<code> </code><code>print</code><code>(</code><code>"{} is talking"</code><code>.</code><code>format</code><code>(</code><code>self</code><code>.hobbie))</code>
<code> </code><code>@</code><code>staticmethod</code> <code>##靜态方法,不能通路類變量 和執行個體變量,大多情況不用,類的工具箱</code>
<code> </code><code>def</code> <code>walk():</code>
<code> </code><code>print</code><code>(</code><code>" is talking"</code><code>)</code>
<code> </code><code>@</code><code>property</code> <code>##屬性,下面就不是方法了,變成了一個屬性,但是依然可以通路執行個體和類變量</code>
<code> </code><code>def</code> <code>habit(</code><code>self</code><code>):</code>
<code> </code><code>print</code><code>(</code><code>"{} habit is xxoo"</code><code>.</code><code>format</code><code>(</code><code>self</code><code>.name))</code>
<code>d </code><code>=</code> <code>Animal(</code><code>"Hequan"</code><code>)</code>
<code>Animal.talk()</code>
<code>d.talk()</code>
<code>d.walk()</code>
<code>d.habit</code>
<code>meat </code><code>is</code> <code>talking</code>
<code> </code><code>is</code> <code>talking</code>
<code>Hequan habit </code><code>is</code> <code>xxoo</code>
私有屬性 __
self.__num=num
經典類: 深度有限
新式類:廣度優先
類的特殊成員
__doc__ 列印注釋
__module__ 表示目前操作的對象在那個子產品
__class__ 表示目前操作的對象的類是什麼
__init__ 構造方法,通過類建立對象時,自動觸發執行
__del__ 析構方法,當對象在記憶體中被釋放時,自動觸發執行。執行完成後,統一銷毀。
__call__ 對象後面加括号,觸發執行
__dict__ 檢視類或對象中的所有成員、
__new__ \ __metaclass__ 類的生成 調用 順序依次是 __new__ --> __call__ --> __init__
反射
通過字元串映射或修改程式運作時的狀态、屬性、方法
hasattr
getattr
setattr
delattr
if __name__=="__main__":
server = WebServer('localhost',3306)
if hasattr(server,sys.argv[1]):
func = getattr(server,sys.argv[1]) ##擷取執行後面加的值 如 start
func()
本文轉自 295631788 51CTO部落格,原文連結:http://blog.51cto.com/hequan/1886936,如需轉載請自行聯系原作者