魔法方法

1、析构函数

class todo2:
    def __init__(self,name):
        self.name=name

    def play(self,lesson_name):
        print("学生",self.name,"去",lesson_name,"玩")

    def __del__(self):#在方法结束后会被调用的方法
        print("玩完了")

zhang=todo("xiaozhang")
zhang.lesson("python")

li=todo2("xiaoli")
li.play("网吧")

2、其他内置函数

class Vector():
    def __init__(self,a,b):
        self.a=a
        self.b=b
    def __str__(self):#print时候调用
        return 'vector(%d,%d)' %(self.a,self.b)
    def __repr__(self):#repr方法的时候调用,或者交互模式,直接使用实例
        return "vector"
    def __call__(self):
        print("vector is called")
    def __del__(self):#程序结束的时候会调用
        print("del vecotr instance")

x=Vector(3,7)
print(repr(x))
x()#默认调用__call__的内置方法
print(x.__dict__)#打印此实例包含的所有实例变量


class Foo():
    def __init__(self):
        self.data={}#数据存在此字典中
    def __getitem__(self, key):#读操作:实例名【key】--->调用此方法
        print("__getitem__",key)
        return self.data.get(key,None)
    def __setitem__(self, key, value):#赋值:实例名【key】=xxx--->调用此方法
        print('__setitem__',key,value)
        self.data[key]=value
    def __delitem__(self, key):#删除操作:del 实例名【key】--->调用此方法
        print('__delitem__',key)
        del self.data[key]

obj=Foo()
result=obj["姓名"]
obj['姓名']="涵涵"
print(result)
del obj['姓名']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值