一,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(类相关函数的补充)相关推荐

  1. 补8.python之面相对象part.7(类相关函数的补充)

    一,isinstance(obj.cls) & issubclass(sub,super) isinstance(obj.cls):用于检查一个对象是否属于某个类.(某个对象是否由某个类产生) ...

  2. python小数补0,python用零填充小数

    I'm looking for a way to pad the float decimals with zeros: This one is my reference: In [37]: '{:5. ...

  3. 蚂蚁集团研究员王益:Go+ 可有效补全 Python 的不足

    王益,蚂蚁集团研究员,开源项目SQLFlow 和 ElasticDL 的负责人.他从10岁开始写代码.曾经用自己焊接的电路板扩展"中华学习机"来把自家的老式"威力牌&qu ...

  4. 蚂蚁王益:Go+ 可有效补全 Python 的不足

    简介:Python 的语法很灵活,融合了很多其他语言中令人觉得方便的特点.然而 Python 的优势同时也隐含了其劣势.蚂蚁研究员王益在工业系统中对 Python 的亲身体会,更加深刻地了解到了 Py ...

  5. vim python补全_转:VIM python 自动补全插件:pydiction

    这是一个相当不错的 Python 代码自动完成的脚本. 可以实现下面python代码的自动补全: 简单python关键词补全 python 函数补全带括号 python 模块补全 python 模块内 ...

  6. 还不会python面相对象?活该单身(面向对象基础+交互关系)

    文章目录 概述 名词解释 类的定义 类的实例化 类属性 两个对象的交互 依赖关系 关联关系 组合关系 类变量的用途 概述 活在当下的程序员应该都听过"面向对象编程"一词,之前太懒了 ...

  7. python面相对象编程指南_Python面向对象编程指南

    抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...

  8. python是一种面相什么语言_Python面相对象编程的知识总结

    1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法,对象是类的实例. 2.类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数 ...

  9. Python之面相对象 - 函数VS方法 反射

    函数VS方法 从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数 自定义函数:根据自己的需求,来进行定义函数. (2)方法 ...

最新文章

  1. 在Vmware中安装Ubuntu
  2. Linux下安装二进制版mysql-8.0.15
  3. 【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
  4. Anaconda:Anaconda安装图文教程及其tensorflow安装、运行、测试之最强详细攻略
  5. 「前端工程化」该怎么理解?
  6. python中文件打开的合法模式组合_以下选项中,不是Python文件打开的合法模式组合是:...
  7. 机器学习基础(六十)—— 凸优化
  8. iis 6 7 8预加载,提升web访速
  9. 耿建超英语语法---非谓语动词作主语
  10. 10个物联网应用的案例
  11. dreamware html中加入flv,Dreamweaver插入FLV文件技巧
  12. 使用Openxal框架开发加速器模型相关的java应用程序
  13. 如何制作实时库存报表
  14. 我的世界java播放背景音乐_我的世界BOSS音乐mod
  15. 货郎问题与计算复杂性
  16. 如何使用BEACON功能?
  17. citra黑屏_3ds模拟器最新版Citra下载_3ds模拟器Citra2019最新版下载_游戏堡
  18. shell脚本:删除文本中的字母、找单词、筛选,匹配,删除,替换
  19. 数据中心的直流电源与交流电源
  20. 最大机枪池被黑客攻击,BSC接连被暴击后将走向何方?

热门文章

  1. Windows部署solr服务,启动solr单机模式和solrCould模式
  2. MatlabR2018aWin 安装教程 (附文件)
  3. 重读《从菜鸟到测试架构师》-- 从专家到高手
  4. 在弱肉强食的世界里,人类的美德意识为何能够超越其他物种?
  5. 僵尸java7723_僵尸王国7723游戏盒子
  6. 基于jsp的KTV管理系统mysql
  7. Spark Steaming流式日志过滤与分析
  8. 前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)
  9. 服务器芯片和一般电脑芯片的区别,服务器CPU和PC的CPU区别
  10. 荒野行动pc版服务器无响应,荒野行动PC版闪退怎么办 电脑版闪退解决方法