|
|
发表于 2022-5-24 17:11:26
|
显示全部楼层
本帖最后由 阿奇_o 于 2022-5-24 17:31 编辑
一切皆对象,但 我们永远看不见 那个对象 —— 因为它本质是内存里的0和1
—— 我们只能通过用一个 字符(符号)名 来 绑定 那个内存对象所在的地址 ,再通过该地址读取到该地址上存储的 值 。
又为了更好地处理不同类型的值,计算机科学家们又把 这些值,分为若干个 基本数据类型 (数值型、字符型、浮点数型等)。
所以,一个对象,天然具有 代表其所在地址的id,其值value,其所属类型 type,以及99.99..%都会同时存在的、和它绑定的某个字符名字(不然你咋调用该对象)
所以,不太清楚时,就问自己:
- 这里什么字符名 跟 什么类型对象,进行了绑定? 这是什么类型、什么类?
- 我看见的是对象的 值吗? 还是代表该对象的某些特定字符值?
(print(obj)调用的是obj.__str__() 所返回的值,但__str__是可以自定义的! 而__repr__也可以自定义,那你知道:什么情况下会调用obj.__repr__() ? )
例子:
复制代码
进阶理解:
- 函数也是对象(函数名就是所绑定的"符号名",函数体和参数等意味着其值和类型)。
- 类也是对象(类名就是所绑定的"符号名",……)
|
|