类和模块的特殊属性和方法

Python一切皆对象(object),每个对象都可能有多个属性(attribute)。Python的属性有一套统一的管理方案。

  • 对象的属性可能来自于其类定义,叫做类属性(class attribute)。 类属性可能来自类定义自身,也可能根据类定义继承来的。
  • 一个对象的属性还可能是该对象实例定义的,叫做对象属性(object attribute)。
  • 对象的属性储存在对象的__dict__属性中。__dict__为一个词典,键为属性名,对应的值为属性本身。

判断对象是否有指定属性:

  1. hasattr(obj,attr): 返回真假(通过getattr异常与否来实现)
  2. dir(obj): 列出对象现有属性
  3. 通过try: obj.attr_name; except AttributeError: pass

属性

  • __doc__: 帮助说明, 将字符串写在对象定义声明之下.
  • __module__: 模组名,就是文件的名字(无后缀)部分
  • __class__: 返回对象的类信息
  • __dict__: 储存对象属性/方法的字典.
  • __slots__: 设置一个元组,限定允许绑定的属性名称(不能动态添加以外的属性). 只能对当前类起效, 对子类不起效(除非在子类中也定义__slots__,这样,子类允许定义的属性就是自身的__slots__加上父类的__slots__。)

方法

还有 89% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.00 继续阅读

相关阅读更多精彩内容

友情链接更多精彩内容