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. 机器学习入门-贝叶斯中文新闻分类任务 1. .map(做标签数字替换) 2.CountVectorizer(词频向量映射) 3.TfidfVectorizer(TFDIF向量映射) 4.MultinomialNB()贝叶斯模型构建

    1.map做一个标签的数字替换 2.vec = CountVectorizer(lowercase=False, max_features=4000)  # 从sklean.extract_featu ...

  2. vue - process.env 定义

    1.官方解释:process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 requir ...

  3. import 语句用于导入从外部模块,另一个脚本等导出的函数,对象或原语。

    import 语句用于导入从外部模块,另一个脚本等导出的函数,对象或原语. 注意:此功能目前无法在任何浏览器中实现.它在许多转换器中实现,例如 Traceur Compiler , Babel , R ...

  4. redis数据迁移

    redis的备份和还原,借助了第三方的工具---redis-dump,  redis中使用redis-dump导出.导入.还原数据实例 1.安装redis-dump # yum install rub ...

  5. chattr与lsattr命令

    这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. chattr命令的用法:chattr [ -R ...

  6. AWK用法整理

    printf "1:2::3:::4::::5" | awk -F '[:]+' '{print $4}' [:]+ 表示以1个或多个 :(冒号)作为分隔符 ip  addr  | ...

  7. Java Magic. Part 1: java.net.URL

    Java Magic. Part 1: java.net.URL @(Base)[JDK, url, magic, 黑魔法] 英文原文 转载请写明:原文地址 系列文章: -Java Magic. Pa ...

  8. Delphi 解析系统环境变量

    // http://www.outofmemory.cn function ExpandEnvironment(const strValue: string): string; var chrResu ...

  9. 用js来实现银行家算法

    Number.prototype.round = function (len) { var old = this; var a1 = Math.pow(10, len) * old; a1 = Mat ...

  10. TLS/SSL 协议详解 ssL 、TLS 1.0、TLS 1.1、TLS 1.2的了解

    TLS 1.0 RFC http://www.ietf.org/rfc/rfc2246.txt TLS 1.1 RFC http://www.ietf.org/rfc/rfc4346.txt TLS ...