Python基础-析构函数单例模式等

本文介绍了Python编程中的基础概念,包括析构函数的使用,加减法函数实现,以及如何利用hasattr函数检查对象是否包含特定属性。此外,还详细讲解了单例模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

析构函数:

class A():
    count=0
    def __init__(self,name):
        self.name=name
        A.count+=1
    def __del__(self):  #析构函数
        A.count-=0
        print('删除',self.name,'还剩%d个对象'%A.count)
a=A('张三')
b=A('李四')
del a
del b

在这里插入图片描述
加减法函数:

class Num():
    def __init__(self,n):
        self.n=n
    def __add__(self, other):   #加法函数
        return self.n+other.n
    def __sub__(self, other):   #减法函数
        return  self.n-other.n
    def __call__(self, *args, **kwargs):
        result=self.n
        for a in args:
            result*=a   #1*5+2*5+3*5
        for k,v in kwargs.items():
            result+=v   #4+5
        return result

a=Num(5)
c=a(1,2,3,age=4,shengao=5)
print(c)

在这里插入图片描述
hasattr判断是否含有属性

class Car():
    obj=''
    def __new__(cls, *args, **kwargs):
        print('我在这')
        return object.__new__(Car)       #建立一个car对象
    def __init__(self,name,cid):
        print('你好')
        self.name=name
        self.cid=cid
bmw=Car('宝马','京A66666')
print(hasattr(Car,'obj'))            #hasattr有属性,判断类里是否含有引号内的属性

在这里插入图片描述

单例模式

class Car():
    def __new__(cls, *args, **kwargs):
        if not hasattr(Car,'inst'):             #如果Car里面没有inst属性
            Car.inst=object.__new__(Car)        #建立一个Car对象,给inst属性
        return Car.inst#返回inst
    def __init__(self,name,cid):
        print('你好')
        self.name=name
        self.cid=cid

a=Car('宝马','京A66666')
b=Car('奔驰','京B66666')
print(a is b)                            #a是Car.inst,b也是Car.inst,所以a是b
print(a.name,a.cid)
print(b.name,b.cid)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值