Python - python type and type related functions

In this post, we have the following section, we are going to examine the type system and focus on the following aspect, 1. where I can get type of a class or type of an object.  And we will also examine the function that works on the type in python, the function that we will examine include 1. isinstance, issubclass and of course the most known one - type function. 
Let's see the code below. 
'''
Created on 2012-11-21

@author: Administrator
'''

def type_basic():
    type_equal = type("hello") == type("Goodbye")
    type_equal = type(5)

def type_get_type():    
    class A:
        pass
    class B(A):
        pass
    b = B()
    type_info = type(b)
    type_info = b.__class__
    assert type_info == B, "b.__class__ != B"
    assert type_info == type(b), "b.__class__ == type(b)"

def type_isinstance():    
    class C:
        pass
    class D:
        pass
    class E(D):
        pass
    x = 12
    c = C()
    d = D()
    e = E()
    is_instance = isinstance(x, E) # false
    is_instance = isinstance(c, E) # false
    is_instance = isinstance(e, E) # true 
    is_instance = isinstance(e, D) # true
    is_instance = isinstance(d, E) # false

def type_issubclass():
    class C:
        pass
    class D:
        pass
    class E(D):
        pass
    issubclass(C, D)
    issubclass(E, D)
    issubclass(D, D)
    e = E()
    # remmber the type_get_type method? you can do the 
    # issubclass on the x.__class__
    issubclass(e.__class__, D)

if __name__ == '__main__':
    type_basic()
    type_get_type()
    type_isinstance()
    type_issubclass()

更多相關文章
  • python對多國語言的處理是支持的很好的,它可以處理現在任意編碼的字符,這裏深入的研究一下python對多種不同語言的處理.有一點需要清楚的是,當python要做編碼轉換的時候,會借助于內部的編碼,轉換過程是這樣的:原有編碼 -> 內部編碼 -> 目的編碼python的內部是使用uni ...
  • ---------<PYTHON核心編程>比較 Python(Python 與其他語言的比較)Python 已經和很多語言比較過了.一個原因就是 Python 提供了很多其他語言擁有的特性.另外一個原因就是 Python 本身也是由諸多其他語言發展而來的,這包括 ABC.Modula-3 ...
  • In this post , we will investigate the techqniues that we can explore to way that we can improve testability and debugability .assertthe simplest way ...
  • 安裝deb軟件包時出現Unknown media type in type **/** 的解決辦法
        在安裝astah uml時出現了如下問題:        該問題的解決方法如下:    1.找到kde.xml文件,我這裏的路徑是:   /usr/share/mime/packages/kde.xml    2.先對kde.xml文件進行備份:        sudo cp /usr/sh ...
  • Python has in-built a database engine that is the sqlite3 which does not require a server and a client, unlike mysql and others. sqlite3 uses a file a ...
  • We know some small techniques that we can use to build small programs. but we eventually will progress to build a more complicated program, and we nee ...
  • Normally we will use __init__ as the constructor, but what shall we do when we are done with the object?the key lies in the __del__ method, when the o ...
  • type(object) type(name, bases, dict) 本函數是返回對象的類型對象.只有一個參數object時,直接返回對象的類型對象.如果只是想判斷一個對象是否屬于某一個類的對象,可以使用isinstance()函數,並不需要本函數返回類型對象來判斷,因爲在有繼承關系時,它並不返 ...
一周排行
  • 基于snmp4j取得linux系統的cpu、ram信息
    ps:希望做過snmp的大拿能過來解答一下.         菜鳥通過 cat /proc ...
  • Eclipse 優化啓動速度
    作爲java程序員的日常開發工具軟件,開源的eclipse是小巧而功能強大的,每天都需要啓 ...
  • 交互設計的 UI 原則
    交互設計如今已是一個十分常見的問題,但許多設計者和開發者仍不知道它的具體意義.今天,我們將 ...
  • 衆多字符集編碼的區別 很久很久以前,有一群人,他們決定用8個可以開合的晶體管來組合成不同的狀態,以表示世界上的萬物.他們看到8個開關狀態是好的,于是他們把這稱爲"字節".        再後來,他 ...
  • 在linux中刪除一個目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現在使用rm -rf命令即可解決. 直接rm就可以了,不過要加兩個參數-rf 即:rm -rf   目錄名字 -r ...
  • 原文:http://ourmysql.com/archives/730Memcached, 人所皆知的remote distribute cache(不知道的可以javaeye一下下,或者google一下下,或者ba ...
  • preventdefault :阻止浏覽器默認行爲 stoppropagation:阻止冒泡 return false:作用和preventdefault ,stoppropagation一樣 區別是preventd ...
  •     人臉識別的主要步驟可以分爲:圖像采集,人臉檢測(Face Detection),人臉識別(Face Recognition).     圖像采集極爲簡單,直接用cv從攝像頭獲取--函數cvCreateCame ...
  • 昨天,想起之前看過的JDK API,發覺又生疏了不少.又開始看,就當是回顧一下,之前也是囫囵吞棗看過一遍主要的類. 有人肯定會想,JDK API,那不是神一般的存在,該頂禮膜拜.我覺得到也不必如此.寫這些的也是人,他 ...
  • 標簽: 之前自己寫的springmvc 默認首頁都是偷懶方式: web.xml 中定義的默認首頁: <welcome-file-list> <welcome-file>index.html&l ...