zoukankan      html  css  js  c++  java
  • 面向对象-内置方法

    class Foo:
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def __getitem__(self,item):
            print('getitem')
            print(item)
            return self.__dict__.get(item)
    
        def __setitem__(self, key, value):
            print('setitem')
            print(key,value)
            self.__dict__[key]=value
    
        def __delitem__(self, key):
            print('delitem')
            print(key)
            # self.__dict__.pop(key)
            del self.__dict__[key]
    
    obj=Foo('egon',18)
    #查看属性:
    obj['name']  # 相当于obj.name
    obj['age']
    
    #设置属性
    obj['sex']='male'  #相当于 obj.sex='male'
    
    print(obj.__dict__)
    print(obj.sex)  # 为增加的 'male
    
    #删除属性
    del obj.name
    del obj['age']
    print(obj.__dict__)
    
    
    # str 用法
    d=dict({'name':'egon'})
    print(isinstance(d,dict))
    print(d)
    class People:
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def __str__(self):  #核心
            print('---->str')
            return 'name:%s,age:%s'%(self.name,self.age) #核心
    
    obj=People('egon',18)
    print(obj)
    
    #__del__
    f=open('settings.py')  # 操作系统打开了
    f.read()
    f.close() #回收操作系统的资源
    print(f)
    class Open:
        def __init__(self,filename):
            print('open file')
            self.filename=filename
    
        def __del__(self):
            print('回收操作系统资源:self.close()')
    
    f=Open('settings.py')
    # del f # f.__del__()
    print('----main----')  # del f # f.__del__()
  • 相关阅读:
    C++中substr函数的用法
    最小生成树-克鲁斯卡尔模板
    最小生成树-prim算法模板
    1064. 朋友数(20)
    1076. Wifi密码 (15)【模拟】
    二分搜索与二分答案
    HDU 1969 Pie【二分】
    1047. 编程团体赛(20)
    1057. 数零壹(20)
    L2-3. 悄悄关注【STL+结构体排序】
  • 原文地址:https://www.cnblogs.com/hexiaorui123/p/10201527.html
Copyright © 2011-2022 走看看