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

    一 .isinstance(obj,cls)和issubclass(sub,super)

    isinstance(obj,cls)检查是否obj是否是类 cls 的对象

    class Foo(object):
        pass
    obj = Foo()
    isinstance(obj, Foo)
    

    issubclass(sub, super)检查sub类是否是 super 类的派生类

    class Foo(object):
        pass
    class Bar(Foo):
        pass
    issubclass(Bar, Foo)
    

    2. item系列

    _开头 __结尾 的方法,在python中是系统内置的方法,一般会在某个时候自动触发

    # item 系列
    class Foo:
        def __init__(self, name):
            self.name = name
    
        def __getitem__(self, item):  #  item = 'name'
            # 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):
            self.__dict__.pop(key)
            # del self.__dict__[key]
    
    obj = Foo("gd")
    
    # item 模拟字典的取值方式
    print(obj['name'])  #gd  触发 __getitem_ 方法
    
    # 设置
    obj['sex'] = 'boy'
    print(obj.__dict__)  # {'name': 'gd', 'sex': 'boy'}
    
    # 删除
    del obj['sex']  # 触发 __delitem__
    print(obj.__dict__)  # {'name': 'gd'}
    

    3. __ str __

    dic = {'name':'kaka', 'skill':'写轮复制'}
    print(dic)  # print(dic)  #
    # 类比一下,如果是对象,这个时候打印出来的应该是 function地址之类的,但是现在直接打印出了里面的数据属性
    #------------------------------------------
    
    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        # 打印对象的时候就会触发该方法,然后我们可以根据需求设置返回值
        def __str__(self):
            return 'name:%s  age:%s'%(self.name, self.age)
    
    obj = People('gd', 22)
    
    print(obj)  # 此时会触发 __str__方法
    # name:gd  age:22
    

    4. __ del __

    class Open:
        def __init__(self, file_name):
            self.file_name = file_name
    
        def __del__(self):
            # 程序运行结束后会调用此方法,可以在这里做 资源回收的逻辑
            print("程序运行结束....")
    
    f = Open('123.txt')
    print("哒哒哒...")
    
    # 哒哒哒...
    # 程序运行结束....
    

    ....................

    其他内置方法........后续碰到再补充

  • 相关阅读:
    JQuery中的回调对象
    CSS中的视觉格式化模型
    css中的选择器
    浅谈css中的position
    python-24: re 模块 之二 re方法及反斜杠
    python-23 xml.etree.ElementTree模块
    python-22 eval json pickle shelve 之间差别
    python-21 os 模块
    python-18: datetime 模块
    python-16: time 模块 之二
  • 原文地址:https://www.cnblogs.com/friday69/p/9386220.html
Copyright © 2011-2022 走看看