Python 类的深入探索:方法、实例创建与属性处理
1. 描述符与方法基础
描述符在 Python 类中扮演着重要角色,它不仅可以用于处理实例,还能实现方法。使用字典是处理实例的一种方式,但并非最佳。描述符的 __get__()
方法在未传入实例时会返回自身,而 __delete__()
方法可用于从属性中删除值,它仅接收实例对象作为参数。
当函数被赋值给类时,它就成为了方法。方法主要分为两种类型:
- 未绑定方法(Unbound Methods) :从类访问函数时,它成为未绑定方法。实际上,这只是一种命名约定,访问类上的方法时得到的就是函数对象本身。例如:
class Example:
def method(self):
return 'done!'
print(type(Example.method)) # <class 'function'>
print(Example.method) # <function method at 0x...>
try:
Example.method()
except TypeError as e:
print(e) # method() takes exactly 1 position argument (0 given)
在 Python 3.0 之前,函数描述符在直接从类访问时会返回 instancemethod
对象,现在则直