博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的属性认识
阅读量:6847 次
发布时间:2019-06-26

本文共 1221 字,大约阅读时间需要 4 分钟。

python中的属性认识

class T(object):    name ='windy'        def bark(self):        passt = T()print dir(t)#['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', #'__getattribute__', '__hash__', '__init__', '__module__', '__new__',  #'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__',  #'__str__', '__subclasshook__', '__weakref__', 'bark', 'name']  复制代码

属性分为两类,一是python自带的,例如__calss__,__hash__

另一个是自定义属性 bark,hello

实例调用未定义的属性

实例直接调用未定义的属性时,程序会抛出异常。

class TestA(object):        pass        testA = TestA()    print testA.name    #AttributeError: 'TestC' object has no attribute 'name'    print testA.bark()  #AttributeError: 'TestC' object has no attribute 'name'复制代码

实例访问属性的顺序

t先到t.__dict__ 搜寻属性key,如果找不到,又会到T.__dict__中搜寻属性key,如果还找不到,就会到T父类的__dict__去搜寻,都没有搜寻到就是会抛出一个exception

class T(object):    name ='windy'    def bark(self):        pass    def __get__(self, instance, owner):        return '__get__windy'        t = T()print t.__dict__  #{}空字典print T.__dict__ t.name = 'windy'print t.__dict__  #{'name': 'windy'}#{'__module__': '__main__', 'bark': 
,#'__dict__':
, '__get__':
, '__weakref__':
, '__doc__': None, 'name': 'windy'}复制代码

转载地址:http://ofmul.baihongyu.com/

你可能感兴趣的文章
mybatis大数据提交和更新,数据SQL语句批量提交数据库
查看>>
每天一个小算法(Shell Sort2)
查看>>
Java数据结构与算法(7) - ch05双向链表(Double List)
查看>>
fiddler 教程
查看>>
自适应布局
查看>>
ILSpy c#反编译工具,附下载地址
查看>>
课堂练习——查找水王续
查看>>
在后台设置yii的配置文件
查看>>
(4/24) webpack3.x快速搭建本地服务和实现热更新
查看>>
Failure is not fatal, but failure to change might be.
查看>>
L2-015. 互评成绩
查看>>
iOS9新特性
查看>>
poj3186 poj3267
查看>>
烂泥:学习centos之快速搭建LNMP环境
查看>>
Poj2723:Get Luffy Out
查看>>
L365
查看>>
SUST OJ 1642: 绝地求生—死亡顺序
查看>>
Android中XML解析-Dom解析
查看>>
highcharts 多数据+切换
查看>>
关于输入输出及编译优化 模板代码
查看>>