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

简介:

一,isinstance(obj.cls) & issubclass(sub,super) 

  1. 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__才会被触发!!





      本文转自苏浩智 51CTO博客,原文链接:http://blog.51cto.com/suhaozhi/1917990,如需转载请自行联系原作者




相关文章
|
2月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
248 0
|
1月前
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
133 3
|
2月前
|
索引 Python 容器
[oeasy]python096_列表_计数函数_count
本教程详细介绍了Python中列表的计数方法`count`,包括其基本用法、与`len`函数的区别,以及如何结合索引操作查找和删除特定元素。同时探讨了字符串对象的`count`方法,并通过实例演示了如何统计字符出现次数。
54 7
|
2月前
|
机器学习/深度学习 数据处理 索引
Python内置函数:面试通关的49个秘密武器
本文精选49个Python高频面试内置函数,涵盖数值处理、类型转换、序列操作、字典集合、函数式编程及高级特性,结合真实代码案例解析底层逻辑与应用场景,助你提升开发效率,轻松应对技术面试。
57 1
|
1月前
|
Python
解决Python中AttributeError:'image'对象缺少属性'read_file'的问题策略。
通过上述策略综合考虑,您将能够定位问题并确定如何解决它。记住,Python社区很庞大,也很乐于帮助解决问题,因此不要害怕在求助时提供尽可能多的上下文和您已经尝试过的解决方案。
67 0
|
1月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
5月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
116 20
|
3月前
|
API Python
Python 的内建函数
Python 的内置函数列表,方便查询使用方法。
|
3月前
|
数据采集 自然语言处理 搜索推荐
Python内置函数ord()详解
`ord()` 是 Python 中用于将单个字符转换为对应 Unicode 码点的核心函数,支持 ASCII、多语言字符及特殊符号。其返回值为整数(范围 0-1114111),适用于字符编码验证、数据清洗、自定义排序、基础加解密等场景。使用时需注意参数长度必须为 1,否则会触发 `TypeError`。结合 `chr()` 函数可实现双向转换,进阶技巧包括多字节字符处理、编码范围检测及字符分类验证等。
|
5月前
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
253 15

热门文章

最新文章

推荐镜像

更多