构造函数和析构函数

#创建对象 时候就已经拥有的属性
# __init__具有初始化作用,当该类被实例化时会自动执行该函数,那么通常可把初始化属性放在这个方法里面


# 注意
# 类里面没有写__init__().python会自动创建,但是不执行任何操作
# class Hero:
#     def __init__(self,name,hp,at):
#         self.name=name
#         self.hp=hp
#         self.at=at
#     def move(self):
#         print(f'{self.name}正在移动')
#
#     def hpp(self):
#         print(f'生命值还有{self.hp}')
#
#     def att(self):
#         print(f'受到了{self.at}的攻击')
# #创建对象
# a=Hero('李白',200,100)
# b=Hero('澜',400,900)
# c=Hero('镜',600,200)
#
# a.move()
# a.hpp()
# a.att()
# b.move()
# b.hpp()
# b.att()
# c.move()
# c.hpp()
# c.att()


# 构造函数
# __init__()构造函数 魔法方法 通常用来做属性初始化或赋值操作--创建对象:python解释器默认会调用
# __def__() 析构函数 --删除对象 python解释器默认会调用的方法
# 析构函数用于在对象被清除后清除它占用的内存空间

# 作用:主要用于对那些长期占用内存的临时变量进行销毁

# 注意事项:
# 1.构造函数和析构函数一样,不能有返回值:
# 2.析构函数不能有参数
# 3.一个类只有一个析构函数
# 4.析构函数在对象销毁时,被调用

# 当对象在某个作用域中调用完毕,在跳出起作用域时,析构函数会被调用一次,可以用来释放我的内存空间
# 例一
class Person:
    def __init__(self):
        print('我是init方法')
    def __del__(self):  #析构函数
        print('被销毁了这个函数')
# 创建对象
xm=Person()
print('最后一个')
def funa(a,b):
    return a+b
print(funa(1,2))


# 例二
class Person:
    def __init__(self):
        print('我是init方法')
    def __del__(self):  #析构函数
        print('被销毁了这个函数')
xm=Person()
del xm   #手动删除,会立即执行
print('xiaolong')


# __str__()函数--能够在输出对象变量时,打印自定义内容
# 注意:
# 1.__str__()必须返回一个字符串
# 2.定义了__str__(),在打印对象,默认输出该方法的返回值

# class A:
#     def __str__(self):
#         return 'Hi'
# str1=A()
# print(str1)

class B:
    def __init__(self,name,score,age,ability):
        self.name=name
        self.score=score
        self.age=age
        self.ability=ability
    def name1(self):
        print(f'他的名字是:{self.name}')

    def name1(self):
        print(f'他的分数是:{self.score}')

    def name1(self):
        print(f'他的年纪是:{self.age}')

    def name1(self):
        print(f'他的能力是:{self.ability}')
    def __str__(self):
        return f'他的名字是{self.name},他的总得分是:{self.score},他的年纪是:{self.age},他的能力等级是:{self.ability}'

Lbj=B('勒布朗',40000,40,'SSS+')
print(Lbj)
print(Lbj.__dict__)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值