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): ...
随机推荐
- Spring mvc RequestContextHolder分析
转载: http://blog.csdn.net/zzy7075/article/details/53559902
- int和Integer区别
Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper cl ...
- 根据class操作div显示与隐藏
<div class="otherComment" > <!-- style="display:none" --> 测试 </di ...
- asp.net cors solution
I have a simple actionmethod, that returns some json. It runs on ajax.example.com. I need to access ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 代码分层
视频地址:https://www.cctalk.com/v/15114923889408 文章 在前面几节中,我们已经实现了项目中的几个常见操作:启动服务器.路由中间件.Get 和 Post 形式的请 ...
- js实现jquery函数animate动画效果
<script> function animate(obj, json, interval, sp, fn) { clearInterval(obj.timer); function ge ...
- kubeadmin 部署(centos 7)
安装指定版本docker:# yum list docker-ce --showduplicates | sort -ryum install docker-ce-18.06.1.ce-3.el7vi ...
- linux一些基本常识(三)
acl:对本身权限的扩展 打包:zip 111.zip a.txt b.txt..... zip -r /etc/sysconfig/* (样才能第归所有内容0) 解宝:uzip 1 ...
- python复制文件,路径不存在问题(Windows和linux路径分隔符不统一)
问题: python脚本涉及到复制文件,而我们需要兼容Windows.linux和mac环境 (Windows和linux的路径分隔符不同:通过os.path.sep查看分隔符) 如果用[路径名+ ...
- IsPostBack用法
可以自己定义 在页面中定义隐藏的input,设置为ispostback. <form action="" method=""> <input ...