流畅的Python第九章总结

流程的Python

第九章总结

  1. __ iter __把实例变成可迭代实例。
  2. print()调用__str__而非__repr__方法。
  3. ==的特殊方法为__eq__。
  4. 两个装饰器

@classmethod装饰函数,指明为类方法,而非实例方法。
@staticmethod装饰器,指明为静态方法,即普通方法。只是恰好在类中,而非模块中,不是很有用,如果不想与类交互,直接在模块中定义就好了。

  1. 格式化显示

format()和str.format()

>>> brl = 1/2.43
>>> brl
0.4115226337448559
>>> format(brl, '0.4f')
'0.4115'
>>> '{rate:0.2f}'.format(rate = brl)
'0.41'

https://blog.csdn.net/xyx_x/article/details/90202813
具体使用看上一个链接。

格式化输出是可扩展的,每个类可以自行定义__format__函数。如datatime模块中的类,

>>> from datetime import datetime
>>> now = datetime.now()
>>> format(now, '%H:%M:%S')
'12:19:24'
>>> "It's now {:%H:%M:%S}".format(now)
"It's now 12:19:24"

如果类中没有定义__format__函数,则会返回str(object)。

  1. Python的私有属性和受保护的属性

Python没有private,但是可以将属性前加两个下划线,这样属性会被存在实例的__dict__属性中,而此时的名称变为_类名__属性名。但是这样不好,如果知道这种机制,同样可以改写这个属性。所以尽量不要用。Python程序员有个约定,在需要private的属性名前加一个下划线,Python解释器不会对这个属性做任何特殊处理。

  1. 覆盖类属性

当实例使用类属性时,如self.类属性,此时获得的就是类属性的值,但是如果改写这个实例的类属性,不会改变原来的类属性,只是改变这个实例的类属性。如果想要修改原来的类属性,需要使用类.类属性来改写。这个类属性子类可以继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值