python学习第二十三章

Posted auxiaoliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习第二十三章相关的知识,希望对你有一定的参考价值。

主要内容:

1.特殊方法

2.设计模式:单例模式

 

1.特殊方法

isinstance  判断obj1是否是B这个类实例化来的,或者是B这个类的父类实例化来的.是的话,返回true,不是返回False

isinstance(obj1,B)

issubclass 判断一个类是否是另一个类的派生类.

print(issubclass(B,A))  如果B类是A类派生来的话,那么就是Ture.

 

 

__len__, __hash__ __str__ __repr__

len(a1  )如果对一个对象进行len()操作,  他会找到对象从属于的类中的__len__方法,并且此方法中必须要有数字的返回值.

__hash__方法也有类似的效果.

示例:

class A:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def __len__(self):
        return len(self.__dict__)

a1 = A(oldboy,1000)
print(len(a1))

__str__方法

# print(a) # 打印对象,就会触发类中__str__方法
# str(a) # str(a),就会触发类中__str__方法
# print(‘打印此类对象:%s‘ % a) # 格式化输出 ‘%s‘a

 

repr也是类似的方法

__call__ 方法

对象() 自动执行类中的__call__方法

 

示例:

class A:
    def __init__(self):
        pass
    def func(self):
        print(111)

    def __call__(self, *args, **kwargs):
        ‘‘‘各种代码‘‘‘
        # print(666)
        print(args)
        return wusir
a1 = A()
print(a1(1,2,3))

 __eq__方法

对一个类实例化的两个对象进行比较运算的时候,他会自动触发类中的__eq__

class A:
    def __init__(self):
        self.a = 1
        self.b = 2

    def __eq__(self,obj):
        if  self.a == obj.a and self.b == obj.b:
            return True
a1 = A()
b1 = A()
print(a1 == b1)

__del__    析构方法

 

python垃圾回收机制
文件中你创建的所有的变量,类等等.执行完毕之后,
 一段时间内如果没有用到, 他会自动在内存中去除.
 深入研究: 他会将你的所有变量,类等等做个标记,在一段时间之内,没有被调用,则就会自动回收.

 

class A:
    def __init__(self):
        pass
    def __del__(self):
        print(666)
a1 = A()

 






以上是关于python学习第二十三章的主要内容,如果未能解决你的问题,请参考以下文章

第二十三章 程序集加载和反射

第二十三章 多项目集中权限管理及分布式会话——《跟我学Shiro》

第二十三章:使用存储过程

第二十三章-命令模式

扣响C#之门笔记--第二十三章

实战:第二十三章:接入第三方api访问连接超时,httpclient请求超时问题