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

Python-一切皆对象的更多相关文章

  1. python 进阶读书笔记1 -- 理解python一切皆对象

    理解python一切皆对象: 1.所有的类都是由type创建的 2.所有的类的基类都是object 3.type是类,也是实例,type的基类是object,type对象是由type创建的 4.obj ...

  2. Python小世界:彻底搞懂Python一切皆对象!!!

    前言 犹记得当初学习Python的时候,对于Python一切皆对象很是懵逼,因为Python是面向对象的动态型语言,而在函数及高阶函数的应用中,如若对于一切皆对象不是有很透彻的了解,基础不是那么牢固的 ...

  3. Python高级编程-Python一切皆对象

    Python高级编程-Python一切皆对象 Python3高级核心技术97讲 笔记 1. Python一切皆对象 1.1 函数和类也是对象,属于Python的一等公民 ""&qu ...

  4. Python一切皆对象

    Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象. Java虽然也是面向对象编程的语言,但是血统没有Python纯正.比如Java的八种基本数据类型之一int,在持久化的 ...

  5. python一切皆对象的理解

    min_error=pls(x_train, x_test, y_train, y_test) #这里我之前写的是error,但是前面有一个定义的error函数.所以导致出现了警告. 可能是因为pyt ...

  6. 对Python"一切皆对象"的小参悟

    写在前面 若有误区请大神不吝指正,以免带偏了如我者的弱鸡们 据闻对此不再懵逼后,于函数以及高阶函数编程的进阶有益 类:又称对象,由类创建的个体被称为实例 名言名句"一切皆对象(一切皆类,一切 ...

  7. 关于 python 一切皆对象的实际理解

    1 关于type type 函数可以查看一个对象的类 type 类是一切类型的模版 In [2]: type(1) Out[2]: int In [3]: type(int) Out[3]: type ...

  8. python 引用和对象理解

    今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象 ...

  9. Python深入03 对象的属性

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...

  10. 举例子来说明Python引用和对象

    今天看到这么一句奇怪的话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象分离 更 ...

随机推荐

  1. SpringCloud系列之Nacos应用篇

    前言 原先项目是以SpringConfig作为项目配置中心组件,Eureka作为服务注册发现组件,基本上就是SpringCloud全家桶,Eureka已经停更,所以前期调研可替换方案,主流替换方案有C ...

  2. 2020,最新APP重构:网络请求框架

    在现在的app,网络请求是一个很重要的部分,app中很多部分都有或多或少的网络请求,所以在一个项目重构时,我会选择网络请求框架作为我重构的起点.在这篇文章中我所提出的架构,并不是所谓的 最好 的网络请 ...

  3. rabbitmq用户权限

    none:无法登录控制台 不能访问 management plugin,通常就是普通的生产者和消费者. management:普通管理者. 仅可登陆管理控制台(启用management plugin的 ...

  4. Java 的八种排序算法

    Java 的八种排序算法 这个世界,需要遗忘的太多. 背景:工作三年,算法一问三不知. 一.八种排序算法 直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序. 二.算 ...

  5. 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建

    前言 中间件(Middleware)对于Asp.NetCore项目来说,不能说重要,而是不能缺少,因为Asp.NetCore的请求管道就是通过一系列的中间件组成的:在服务器接收到请求之后,请求会经过请 ...

  6. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  7. 使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记

      现象:  用了几天vagrant后,发现docker 里的 Mysql5.7 服务无法启动,用docker ps 命令,发现mysql一直在反复重启, 查看mysql log 发现说磁盘空间不够, ...

  8. Python之根据四个坐标确定其位于左上下右上下

    1.导入模块 import numpy as np 2.存储所需要确定位置的四个坐标点 # 所需要确定位置的四个坐标 coordinate = [[2570, 1948], [2391, 1919], ...

  9. JVM执行子程序

    Class文件结构 计算机只认识0和1,这个称之为本地机器NativeCode Jvm的无关性 与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行 ...

  10. boot 项目启动报Cannot datermine embedded database driver class for database type NONE

    部署boot项目时报Cannot datermine embedded database driver class for database type NONE数据库链接什么的也都没有问题,经过百度 ...