Python基础(垃圾回收)和特殊方法

垃圾回收

  • 在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除,

  • 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能,所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除

  • 不用手动处理垃圾回收

    object.__del__(self)
    当实例即将被销毁时调用。 这也称为终结器或(不正确的)析构函数。 如果基类具有 __del__() 方法,则派生类的 __del__() 方法(如果有)必须显式调用它以确保正确删除实例的基类部分。
    

特殊方法

特殊方法产考文档

  • 特殊方法,也称为魔术方法
  • 特殊方法都是使用__(双下划线)开头和结尾的
  • 特殊方法一般不需要我们手动调用,需要在一些特殊情况下自动执行

特殊方法:在特殊的时间被调用,完成特殊的作用

'''
产考文档:https://docs.python.org/3/reference/datamodel.html#special-method-names
'''

from unicodedata import name


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

    def __str__(self) -> str:
        '''
        这个特殊方法会在尝试将对象转换为字符串的时候调用
        用来指定对象转换为字符串的结果 ' print() '
        '''
        #return '12345'
        return  'name=%s,age=%d'%(self.name,self.age)

    def __repr__(self):
        '''
        __repr__()这个特殊万法会在对当前对象使用 repr()函数时调用
        它的作用是指定对象在 '交互模式' 中直接输出的效果
        '''
        pass

    '''
    会在对象做大于比较的时候调用,该方法的返回值将会作为比较的结果
    他需要两个参数,一个self表示当前对象,other表示和当前对象比较的对象
    self > other
    '''
    def __gt__(self, other):
        return self.age > other.age

    #def __bool__(self):
        #return self.age >18
'''
object.__lt__(self, other)小于
object.__le__(self, other)小于等于
object.__eq__(self, other)等于
object.__ne__(self, other)不等于
object.__gt__(self, other)大于
object.__ge__(self, other)大于等于
__len__()   获取对象长度
__bool__()  指定对象转化为布尔值
__del__()  在对象被垃圾回收前调用
'''
   





a = A('A', 5)
b = A('b', 15)
#当我们打印一个对象时,实际上打印的是对象的中特殊方法 __str__() 的返回值
print(a,b)
print('a>b:',a > b)
print(bool(a))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值