Python-一切皆對象


Python 動態、靈活根本是什么?

  Python中一切皆對象,面向對象更加徹底,函數、類也是對象,屬於一等公民

 

一等公民特性

  1. 可以賦值給一個變量

def name(name="北門吹雪"):
    print(name)


new_name = name
new_name()

  2. 可以添加到集合對象中

def name(name="北門吹雪"):
    print(name)


def blog(blog="http://www.cnblogs.com/2bjiujiu/"):
    print(blog)


funcs = list()
funcs.append(name)
funcs.append(blog)

for func in funcs:
    func()

  3. 可以作為參數傳遞給函數

def ask_name(name):
    name()


def name(name="beimenchuixue"):
    print(name)


ask_name(name)

  4. 可以當作函數返回值,裝飾器實現原理

def ask_name(name):
    return name


def name(name="beimenchuixue"):
    print(name)


hai = ask_name(name)
hai()

 

type object class 之間的關系

    

  從繼承角度來說,class(list str dict tuple ...)繼承 object, type也繼承 object

# 繼承關系
# str 類型繼承 object類
print(str.__bases__)
# type 類型進程 object類
print(type.__bases__)
# object類繼承 ()
print(object.__bases__)

  從實例角度來說,"abc" 是 str類型的實例, str又是type類型的實例, object是 type的實例, type是type自身的實例

name = "beimenchuixue"

# object class type 實例關系
# name 是 str 實例
print(type(name))
# str 是 type實例
print(type(str))
# object是type實例
print(type(object))
# type是自己的實例
print(type(type))

  type > class > object

  object是由class類型構建, class由type類型構建

  

  object類是頂層基類,所有類的基類,type也要繼承這個類

  type是一個類,同時也是對象,繼承 object類,把自己變成自己的對象,從而實現Python中一切皆對象

  

  獲取變量由什么類型構建的   type()

  獲取類型的基類       __bases__

  object基類是         ()

  class的基類是        object

  type的基類是         object

 

Python 常見的內置類型

  a. 對象

    1. 身份    id()

    2. 類型    type()

    3. 值     對應類型封裝這個值

  b. 數值      int float complex bool

  c. None(全局唯一只有一個)    NoneType類型

  d. 迭代

  e. 序列      list tuple str range

  f. 映射       dict

  g. 集合      set frozeset

  h. 上下文管理   with

  i. 其他類型

    1. 模塊

    2. class和實例

    3. 函數

    4. 方法

    5. 代碼

    6. object對象

    7. type

    8. ellipsis類型

    9. notimeplementd類對象

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com