Python面向对象
迷tu小书童
热衷于技术学习和分享!
展开
-
浅谈Python中的描述器
描述器对于Python的描述器的作用,我们可以先记住一句话:描述器是描述类的属性的。描述器的魔术方法先思考下面程序的执行流程:class A: def __init__(self): self.a1 = 'a1' print('A.init')class B: x = A() # 定义(描述)类的属性 def __init__(...原创 2020-04-09 16:07:42 · 364 阅读 · 0 评论 -
Python世界里的魔术方法(二)
上下文管理__enter____exit__文件的IO操作可以对文件对象使用上下文管理,使用with…as语法。with open('test') as f: pass如果希望类也支持上下文管理,则需要定义两个函数。class A: def __init__(self): print('init') def __enter__...原创 2020-04-08 22:11:12 · 192 阅读 · 0 评论 -
浅谈Python中的反射
反射reflection,指运行时获取类型定义的信息。一个对象能够在运行时,如同照镜子一样,反射出其类型信息。简单而言,在Python中,能够通过一个对象,找出其type、class、attribute或者method的能力,称为反射或者自省。Python的反射能力,主要体现在对象属性上。有一个Point类,并提供了一个方法去查看实例属性。class Point: def __...原创 2020-04-08 19:02:26 · 1108 阅读 · 0 评论 -
Python世界里的魔术方法(一)
序言传说中,Python对象天生具有一些神奇的方法,它们具有一些魔力,因此它们总被双下划线所包围着。这些方法统称为魔术方法。在特定的操作下,这些魔术方法会被自动调用,并且表现出许多神奇的现象。它们是Python面向对象下智慧的结晶。作为Python使用者,了解它们是我们的职责,在某些情况下,我们甚至能改变它们的魔力。本文主要介绍下这些魔术方法中主要的部分,并且说明它们每个的使用场景和神奇之处...原创 2020-03-31 14:48:51 · 175 阅读 · 0 评论