gj2 python中一切皆对象
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中一切皆对象的更多相关文章
- 【Python核心编程笔记】一、Python中一切皆对象
Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...
- python中一切皆对象的理解
一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...
- 第一篇 Python中一切皆对象
- 关于python中一切皆对象和深浅拷贝
- 01-python中一切皆对象
python一切皆对象 Python中一切皆对象,在静态语言中,Java也是面向对象编程,Python要比Java的面向对象编程更加彻底.元类编程以及猴子补丁都是用一切皆对象编程出来的. 1.函数和类 ...
- python:一切皆对象
学过java语言的童鞋都知道,java是一门面向对象语言,其基本思想就是一切皆对象.Python也是一样的,甚至Python将面向对象思想贯彻地更加彻底,因为在Python中,class本身是一个 ...
- Python中通过函数对象创建全局变量
先看下面这段代码,显然无法work. 因为代码试图在TestVariableScope()中引用一个没有被定义的变量a.所以必须报错,如下图-1. 不过如果你将第2行代码注释掉.代码就能跑通了,如图- ...
- 全面了解python中的类,对象,方法,属性
全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...
- Python中的函数对象与闭包
函数在Python中是第一类对象,可以当做参数传递给其他函数,放在数据结构中,以及作为函数的返回结果. 下面的例子为接受另外一个函数作为输入并调用它 #foo.py def callf(func): ...
随机推荐
- canal 常用配置
https://github.com/alibaba/canal/wiki/AdminGuide canal.instance.filter.regex 监控哪些表的正则配置 如下: mysql 数据 ...
- 前端-javascript-BOM-浏览器对象模型
BOM的介绍---浏览器对象模型. 操作浏览器部分功能的API.比如让浏览器自动滚动. -------------------------------------------------------- ...
- ABAP-年月期间搜索帮助
selection-screen begin of block block1 with frame title text-. parameters:p_mon1 like s031-spmon, p_ ...
- struts2,servlet和springmvc的单例多例问题
struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...
- sessionpage1
session1 <%@page import="java.text.SimpleDateFormat"%> <%@ page language="ja ...
- vmadm命令
VMADM(1M)VMADM(1M) 名称 vmadm - 管理SmartOS虚拟机 概要 / usr / vm / sbin / vmadm <command> [-d] [-v] [特 ...
- js 获取input选择的图片的信息
1JS $("#btn").click(function () { var imageEle = document.getElementById("images" ...
- mybatis动态sql trim
trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" p ...
- 使用DW工具给图片添加热点MAP
一.准备一张图片. 准备一张需要给不同区域添加不同热点的图片. 二.插入图片: 打开Dreamweaver,新建一个网页,将图片插入到页面中. 三.找到地图工具: 单击鼠标左键点击图片,这时候 ...
- swift 官方文档
swift 官方文档 https://swift.org/blog/