python getattrribute_补8.python之面相对象part.7(类相关函数的补充)
一,isinstance(obj.cls) & issubclass(sub,super)isinstance(obj.cls):用于检查一个对象是否属于某个类。(某个对象是否由某个类产生)
l1 = list()
print isinstance(l1,list)
输出:
True
2.issubclass(sub,super):用于判断一个类是否是另一个类的子类。
#sub指的是子类,super指的是父类。
class c1(object):
pass
class c2(c1):
pass
print issubclass(c2,c1)
输出:
True
二 , __getattribute__ (内置方法)
这个内置方法,从名字上来看和__getattr__特别的类似,但是触发这个内置方法的条件和__getattr__完全不同!
在一个对象中,当要查找的属性或者方法找不到的时候,就会触发__getattr__。
__getattrbute__则是无论该方法或者属性是否能被找到,都会触发这个方法!这个方法一但执行,如果没有在内部触发一个AttributeError异常,那么__getattr__方法将永远不会被触发。
下面是例子:
class class1(object):
def __init__(self,x):
self.x = x
def __getattr__(self, item):
print "call __getattr__"
obj1 = class1(123)
print obj1.x
输出:
call test
#接着在调用一个不存在的属性
obj1.asadsdsadasfasf
输出:
call __getattr__ #__getattr__方法成功被执行。
class class1(object):
def __init__(self,x):
self.x = x
def __getattr__(self, item):
print "call __getattr__"
def __getattribute__(self, item):
print "call __getattribute__ "
raise AttributeError("^ - ^") #抛出一个AttributeError
obj1 = class1(123)
obj1.x
obj1.asasasasasas
输出执行结果:
call __getattribute__
call __getattr__
call __getattribute__
call __getattr__
从上面的结果来看, __getattribute__当抛出了一个AttributeError异常的时候,__getattr__才会被触发!!
python getattrribute_补8.python之面相对象part.7(类相关函数的补充)相关推荐
- 补8.python之面相对象part.7(类相关函数的补充)
一,isinstance(obj.cls) & issubclass(sub,super) isinstance(obj.cls):用于检查一个对象是否属于某个类.(某个对象是否由某个类产生) ...
- python小数补0,python用零填充小数
I'm looking for a way to pad the float decimals with zeros: This one is my reference: In [37]: '{:5. ...
- 蚂蚁集团研究员王益:Go+ 可有效补全 Python 的不足
王益,蚂蚁集团研究员,开源项目SQLFlow 和 ElasticDL 的负责人.他从10岁开始写代码.曾经用自己焊接的电路板扩展"中华学习机"来把自家的老式"威力牌&qu ...
- 蚂蚁王益:Go+ 可有效补全 Python 的不足
简介:Python 的语法很灵活,融合了很多其他语言中令人觉得方便的特点.然而 Python 的优势同时也隐含了其劣势.蚂蚁研究员王益在工业系统中对 Python 的亲身体会,更加深刻地了解到了 Py ...
- vim python补全_转:VIM python 自动补全插件:pydiction
这是一个相当不错的 Python 代码自动完成的脚本. 可以实现下面python代码的自动补全: 简单python关键词补全 python 函数补全带括号 python 模块补全 python 模块内 ...
- 还不会python面相对象?活该单身(面向对象基础+交互关系)
文章目录 概述 名词解释 类的定义 类的实例化 类属性 两个对象的交互 依赖关系 关联关系 组合关系 类变量的用途 概述 活在当下的程序员应该都听过"面向对象编程"一词,之前太懒了 ...
- python面相对象编程指南_Python面向对象编程指南
抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...
- python是一种面相什么语言_Python面相对象编程的知识总结
1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法,对象是类的实例. 2.类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数 ...
- Python之面相对象 - 函数VS方法 反射
函数VS方法 从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数 自定义函数:根据自己的需求,来进行定义函数. (2)方法 ...
最新文章
- 在Vmware中安装Ubuntu
- Linux下安装二进制版mysql-8.0.15
- 【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
- Anaconda:Anaconda安装图文教程及其tensorflow安装、运行、测试之最强详细攻略
- 「前端工程化」该怎么理解?
- python中文件打开的合法模式组合_以下选项中,不是Python文件打开的合法模式组合是:...
- 机器学习基础(六十)—— 凸优化
- iis 6 7 8预加载,提升web访速
- 耿建超英语语法---非谓语动词作主语
- 10个物联网应用的案例
- dreamware html中加入flv,Dreamweaver插入FLV文件技巧
- 使用Openxal框架开发加速器模型相关的java应用程序
- 如何制作实时库存报表
- 我的世界java播放背景音乐_我的世界BOSS音乐mod
- 货郎问题与计算复杂性
- 如何使用BEACON功能?
- citra黑屏_3ds模拟器最新版Citra下载_3ds模拟器Citra2019最新版下载_游戏堡
- shell脚本:删除文本中的字母、找单词、筛选,匹配,删除,替换
- 数据中心的直流电源与交流电源
- 最大机枪池被黑客攻击,BSC接连被暴击后将走向何方?
热门文章
- Windows部署solr服务,启动solr单机模式和solrCould模式
- MatlabR2018aWin 安装教程 (附文件)
- 重读《从菜鸟到测试架构师》-- 从专家到高手
- 在弱肉强食的世界里,人类的美德意识为何能够超越其他物种?
- 僵尸java7723_僵尸王国7723游戏盒子
- 基于jsp的KTV管理系统mysql
- Spark Steaming流式日志过滤与分析
- 前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)
- 服务器芯片和一般电脑芯片的区别,服务器CPU和PC的CPU区别
- 荒野行动pc版服务器无响应,荒野行动PC版闪退怎么办 电脑版闪退解决方法