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
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



