2.1 python中一切皆是对象

动态语言和静态语言的区别,Python的面向对象更彻底

同时动态语言,代码的灵活性高

没有编译(检查)的过程,错误只有在运行起来后才会发现

函数和类也是对象,属于python的一等公民

1. 赋值给一个变量

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

3. 可以作为参数传递给函数

4. 可以当做函数的返回值

def ask(name="lewen"):
print(name)
class Persoon(object):
def __init__(self):
print("lewen") obj_list = []
obj_list.append(ask)
obj_list.append(Persoon)
for item in obj_list:
print(item())

lewen
None
lewen
<__main__.Persoon object at 0x0000029B7B3BBA20>

2.2 type、object和class的关系

type 的用法 1:生成一个类 2:反回一个对象是什么类型

>>> a = 1
>>> type(a)
<class 'int'>
>>> type(int)
<class 'type'>
>>> b = "abc"
>>> type(b)
<class 'str'>
>>> type(str)
<class 'type'>
>>> class Student:
... pass
...
>>> stu = Student()
>>> type(stu)
<class '__main__.Student'>
>>> type(Student)
<class 'type'>

type->int->1
type->class->obj

type是用来生成类的

>>> type(Student)
<class 'type'>
>>> Student.__bases__
(<class 'object'>,)
>>> class MyStudent(Student):
... pass
...
>>> MyStudent.__bases__
(<class '__main__.Student'>,)
>>> type.__bases__
(<class 'object'>,)
>>> type(object)
<class 'type'>
>>> object.__bases__
()
>>> type(type)
<class 'type'> # object 是最项层基类
# type 也是一个类,同时type也是一个对象

一切都继承自object,一切皆对象

type 自己是自己的实例(内部通过指针指向同一个内存块)

2.3 python中的常见内置类型

对象的三个特征:

    身份(对象在内存中的地址)

In [1]: a=1
In [2]: id(a)
Out[2]: 140714948027216
类型(什么类型的对象) 值 None(全局只有一个) 数值:int float complex bool 迭代类型 序列类型 list
bytes、bytearray、memoryview(二进制序列)
range
tuple
str
array 映射(dict) 集合:set ,frozenset 上下文管理类型(with) 其他:
模块类型
class和实例
函数类型
方法类型
代码类型
object对象
type类型
ellipsis类型
notimplemented类型

gj2 python中一切皆对象的更多相关文章

  1. 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...

  2. python中一切皆对象的理解

    一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...

  3. 第一篇 Python中一切皆对象

  4. 关于python中一切皆对象和深浅拷贝

  5. 01-python中一切皆对象

    python一切皆对象 Python中一切皆对象,在静态语言中,Java也是面向对象编程,Python要比Java的面向对象编程更加彻底.元类编程以及猴子补丁都是用一切皆对象编程出来的. 1.函数和类 ...

  6. python:一切皆对象

      学过java语言的童鞋都知道,java是一门面向对象语言,其基本思想就是一切皆对象.Python也是一样的,甚至Python将面向对象思想贯彻地更加彻底,因为在Python中,class本身是一个 ...

  7. Python中通过函数对象创建全局变量

    先看下面这段代码,显然无法work. 因为代码试图在TestVariableScope()中引用一个没有被定义的变量a.所以必须报错,如下图-1. 不过如果你将第2行代码注释掉.代码就能跑通了,如图- ...

  8. 全面了解python中的类,对象,方法,属性

    全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  9. Python中的函数对象与闭包

    函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...

随机推荐

  1. canal 常用配置

    https://github.com/alibaba/canal/wiki/AdminGuide canal.instance.filter.regex 监控哪些表的正则配置 如下: mysql 数据 ...

  2. 前端-javascript-BOM-浏览器对象模型

    BOM的介绍---浏览器对象模型. 操作浏览器部分功能的API.比如让浏览器自动滚动. -------------------------------------------------------- ...

  3. ABAP-年月期间搜索帮助

    selection-screen begin of block block1 with frame title text-. parameters:p_mon1 like s031-spmon, p_ ...

  4. struts2,servlet和springmvc的单例多例问题

    struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...

  5. sessionpage1

    session1 <%@page import="java.text.SimpleDateFormat"%> <%@ page language="ja ...

  6. vmadm命令

    VMADM(1M)VMADM(1M) 名称 vmadm - 管理SmartOS虚拟机 概要 / usr / vm / sbin / vmadm <command> [-d] [-v] [特 ...

  7. js 获取input选择的图片的信息

    1JS $("#btn").click(function () { var imageEle = document.getElementById("images" ...

  8. mybatis动态sql trim

    trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" p ...

  9. 使用DW工具给图片添加热点MAP

    一.准备一张图片.     准备一张需要给不同区域添加不同热点的图片. 二.插入图片: 打开Dreamweaver,新建一个网页,将图片插入到页面中. 三.找到地图工具: 单击鼠标左键点击图片,这时候 ...

  10. swift 官方文档

    swift 官方文档 https://swift.org/blog/