16、Python 面向对象编程:类型、接口与高级特性

Python 面向对象编程:类型、接口与高级特性

1. 类型、接口与抽象基类

在 Python 中,定义类时要尽量使编程接口统一。使用属性(properties)可以避免一些不必要的混淆。例如,没有属性时,有些值通过简单属性访问(如 b.width b.height ),而有些值通过方法访问(如 b.area() b.perimeter() ),需要额外添加括号会造成混淆。

print(b.area)
# -> 20
print(b.perimeter)
# -> 18
b.area = 5
# Error: can't set attribute

Python 程序员可能没意识到,方法本身也可被隐式当作一种属性处理。例如:

class SomeClass:
    def yow(self):
        print('Yow!')

s = SomeClass()
print(s.yow)
# <bound method SomeClass.yow of <__main__.SomeClass object at 0x10e2572b0>>

当函数放在类中时,其行为类似于属性,会拦截属性访问并在幕后创建绑定方法。使用 @staticmethod @classmetho

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值