Python中万物皆对象?的理解

在很多地方都看到有过这样一句话,但是对象这个词的理解依然停留在谈朋友那个对象上……

《python中的对象的理解》

python中一切皆为对象,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)
Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,
type标识对象的类型,
value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的

如下代码或许可以帮助你理解。

>>> a = 1
>>> b = 1.0
>>> a is b
False
>>> a == b
True
>>> id(a)
12777000
>>> id(b)
14986000

  

>>> a = 1
>>> b = 1
>>> a is b
True
>>> a == b
True
>>> id(a)
12777000
>>> id(b)
12777000

---------------------
作者: 小妖精Fsky
来源:CSDN
原文:https://blog.csdn.net/appleml/article/details/80157312
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/hyeTi/p/10409721.html

时间: 2024-10-29 19:11:32

Python中万物皆对象?的理解的相关文章

第2章 python中一切皆对象

python中一切皆对象 函数和类也是对象,属于python的一等公民 什么是一等公民 1.赋值给一个变量 2.可以添加到集合对象中 3.可以作为参数传递给函数 4.可以当作函数的返回值 def ask(name="bobby"): print(name) my_func = ask my_func("bobby") 运行结果 class Person: def __init__(self): print("bobby") my_class =

gj2 python中一切皆对象

2.1 python中一切皆是对象 动态语言和静态语言的区别,Python的面向对象更彻底 同时动态语言,代码的灵活性高 没有编译(检查)的过程,错误只有在运行起来后才会发现 函数和类也是对象,属于python的一等公民 1. 赋值给一个变量 2. 可以添加到集合对象中 3. 可以作为参数传递给函数 4. 可以当做函数的返回值 def ask(name="lewen"): print(name) class Persoon(object): def __init__(self): pr

python入门系列:Python中一切皆对象

引言 Java语言也是面向对象的语言,但是Python要更加彻底Python的面向对象特性,是它使用起来灵活的根本所在对象的特点 可以赋值给一个变量 函数也是对象 def test(name):print(name) my_func = test # 注意 只写函数名 和 函数名加括号 的区别my_func("MetaTian") # 打印:MetaTian可以添加到集合中去 def plus(a, b):print(a+b) def minus(a, b):print(a-b)fun

python中一切皆对象及__init__.py文件的使用

py一切皆对象,数据.函数.后续声明的类也是一个对象,而函数名称就是对象名称 函数名可直直接返回,这种叫做闭包 python中__init__.py文件的作用,__all__属性配置加载的白名单 原文地址:https://www.cnblogs.com/liuchunxiao83/p/12307626.html

081 python中一切皆对象

在python中,字典.列表.字符串.......都是对象 列表list举例 类实例化产生一个ls对象,是一个列表 ls = list([1,2,3]) print('ls:',ls) ls:[1,2,3,] 对象调用对象的绑定方法,修改对象自己 ls.append(4) print('ls:',ls) ls:[1,2,3,4] 原文地址:https://www.cnblogs.com/xichenHome/p/11414733.html

《python源码剖析》笔记 python中的整数对象

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1. PyIntObject --> long的一个简单包装 typedef struct{ PyObject_HEAD long ob_ival; } PyIntObject; PyInt_Type --> PyIntObject的类型对象.与对象相关的元信息实际上都是保存在与对象对应的类型对象中的 PyTypeObject PyInt_Type = { PyObject_HEAD_I

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

先看下面这段代码,显然无法work. 因为代码试图在TestVariableScope()中引用一个没有被定义的变量a.所以必须报错,如下图-1. 不过如果你将第2行代码注释掉.代码就能跑通了,如图-2. 问题1来了:TestVariableScope.a 不是也没有被定义吗,为什么可以work呢?解释如下:先看代码第8行,TestVariableScope.a在SetVariable方法中被定义了,SetVariable()又 在TestVariableScope()前被调用.所以TestVa

《python解释器源码剖析》第3章--python中的字符串对象

3.0 序 我们知道python中的字符串属于变长对象,当然和int也是一样,底层的结构体实例所维护的数据的长度,在对象没有定义的时候是不知道的.当然如果是python2的话,底层PyIntObject维护的就是一个long,显然在没创建的时候就知道是1. 可变对象维护的数据的长度只能在对象创建的时候才能确定,举个例子,我们只能在创建一个字符串或者列表时,才知道它们所维护的数据的长度,在此之前,我们对此是一无所知的. 注意我们在前面提到过可变对象和不可变对象的区别,在变长对象中,实际上也可以分为

《python解释器源码剖析》第4章--python中的list对象

4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的vector比较类似 4.1 PyListObject对象 我们知道python里面的list对象是支持对元素进行增删改查等操作的,list对象里面存储的,底层无一例外都是PyObject * 指针.所以实际上我们可以这样看待python底层的PyListObject:vector<PyObject