• 类的特殊成员


    #类的特殊成员
    class Foo():
        def __init__(self,name,age):
            self.age = age
            self.name = name
    
        def __int__(self):
            return 23
    
        #对象的返回值 
        #print(obj)就会自动执行对象的__str__方法
        #也就是说执行print对象,就会自动执行对象的__str__方法,并打印该方法的返回值
        def __str__(self):
            return f'{self.name}-{self.age}'
    
        def __del__(self):
            print('析构方法,在对象销毁的时候自动执行')
    obj = Foo('bob',23)
    
    
    # #想要将对象进行类型转换
    # r = int(obj)
    # print(r)
    #
    #
    # res = str(obj)#执行此语句就会执行obj对象的特殊方法__str__
    # print(res)
    
    print(obj)
    
    
    
    #对两个对象进行相加
    class Foos():
        def __init__(self,name,age):
    
            self.name = name
            self.age = age
    
        def __add__(self, other):
            #return 'xxx00'
            #self--->obj1
            #other--->obj2
            #return self.age + other.age
            return Foos(obj1.name,other.age)
    
        def __str__(self):
            return f'{self.name}-{self.age}'
    
    obj1 = Foos('alex',19)
    obj2 = Foos('mary',23)
    
    #要求两个对象相加的结果,就会自动执行第一个对象内的__add__方法
    #并把第二个对象作为参数传入使用
    print(obj1+obj2)
    
    
    
    #__dict__:该方法作用是将对象中封装的所有内容以字典的形式返回
    
    class  S():
        '''__dict__作用'''
        def __init__(self,name,age):
            self.name = name
            self.age = age
            self.hobby = 'play'
    
    
    obj3 = S('alex',34)
    print(obj3.__dict__)
    print(S.__doc__)
    
    
    #__getitem__  __setitem__  __delitem__ 方法
    
    class  Haa():
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
    
        #获取必须有返回值
        def __getitem__(self, item):
            return item +10
    
        #设置不需要返回值
        def __setitem__(self, key, value):
            print(key,value)
    
    
        def __delitem__(self, key):
            print(key)
    
    obj4 = Haa('john',34)
    
    result = obj4[8]#对这个对象obj4进行索引,就会执行这个对象的类中的__getitem__方法,
    # 并把索引传给item
    print(result)
    
    
    obj4[3] = 100
    
    
    del obj4[5]
    
  • 相关阅读:
    JAVA 注解的几大作用及使用方法详解
    内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性
    关于Hash集合以及Java中的内存泄漏
    ifconfig命令详情
    route命令详情
    ping命令详解
    scp命令详解
    ssh命令详解
    telnet命令详解
    sudo命令详解
  • 原文地址:https://www.cnblogs.com/lihuafeng/p/14032417.html
Copyright © 2020-2023  润新知