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

posted @ 2018-05-20 11:55  梦_鱼  阅读(421)  评论(0编辑  收藏  举报