码迷,mamicode.com
首页 > 编程语言 > 详细

python--内建属性

时间:2018-01-21 17:31:55      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:getattr   opened   table   ret   字符串表   show   str   删除   字符串   

一、常用内建属性

常用专有属性说明触发方式
__init__ 构造初始化函数 创建实例后,赋值时使用,在__new__
__new__ 生成实例所需属性 创建实例时
__class__ 实例所在的类 实例.__class__
__str__ 实例字符串表示,可读性 print(类实例),如没实现,使用repr结果
__repr__ 实例字符串表示,准确性 类实例 回车 或者 print(repr(类实例))
__del__ 析构 del删除实例
__dict__ 实例自定义属性 vars(实例.__dict__)
__doc__ 类文档,子类不继承 help(类或实例)
__getattribute__ 属性访问拦截器 访问实例属性时
__bases__ 类的所有父类构成元素 类名.__bases__

 

 

  1.属性拦截器的使用

技术分享图片
class Itcast(object):
    def __init__(self,subject1):
        self.subject1 = subject1
        self.subject2 = cpp

    #属性访问时拦截器,打log
    def __getattribute__(self,obj):
        if obj == subject1:
            print(log subject1)
            return redirect python
        else:   #测试时注释掉这2行,将找不到subject2
            return object.__getattribute__(self,obj)

    def show(self):
        print(this is Itcast)

s = Itcast("python")
print(s.subject1)
print(s.subject2)

#结果
log subject1
redirect python
cpp
属性拦截器的使用

 

python--内建属性

标签:getattr   opened   table   ret   字符串表   show   str   删除   字符串   

原文地址:https://www.cnblogs.com/peilanluo/p/8324559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!