不一样的Python(10)——objects

1. 每个Python的object都有如下属性:

(1)一个唯一的id(由函数id()获得)

(2)一个type(由函数type())获得)

(3)一些内容

我们不能修改object的id和type。有些object的内容可以修改,有些不行。

http://effbot.org/zone/python-objects.htm有更多的讨论。

2. 注意下面的代码,ID是object的内存地址:

>>> class Point:
...   pass
...
>>> p = Point()
>>> print p
<__main__.Point instance at 0x022D81C0>
>>> print '%x' % (id(p))
22d81c0

3. 模块copy里有两个函数拷贝objects:copy(浅拷贝)和deepcopy(深拷贝)

4. 把一个object转化为字符串形式,有两个函数str()和repr(),它们分别对应__str__和__repr__。这两个函数的特点:

  • The default implementation is useless (it’s hard to think of one which wouldn’t be, but yeah)
  • __repr__ goal is to be unambiguous
  • __str__ goal is to be readable
  • Container’s __str__ uses contained objects’ __repr__

 更多信息可以参考:http://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-python

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值