Python编程:迭代器、运算符重载与命名空间深度解析
迭代器与切片
迭代器每次仅生成一个值,这在处理大型结果列表时可显著节省空间。而切片操作会创建新对象,这意味着在多个位置迭代时,并非对同一对象进行操作。为更接近类的操作方式,可提前通过切片创建单个对象用于迭代。示例如下:
S = 'abcdef'
S = S[::2]
print(S) # 输出: 'ace'
for x in S:
for y in S:
print(x + y, end=' ')
# 输出: aa ac ae ca cc ce ea ec ee
迭代器功能强大,可实现类能完成的任何操作,其通用性远超上述示例。在实际应用中,自定义迭代器能让任意对象表现得像常见的序列和可迭代对象。例如,可将其应用于数据库对象,实现对数据库查询结果的多次迭代。
属性引用拦截方法
-
__getattr__方法 :用于拦截未定义属性的引用。当尝试访问实例中不存在的属性时,该方法会被调用,接收属性名作为字符串参数。示例代码如下:
class empty:
def __getattr__(self, attrname):
if attrname == "age":
return 40
else:
raise AttributeE
订阅专栏 解锁全文
259



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



