美文网首页
一些内置方法

一些内置方法

作者: 冬至是条狗 | 来源:发表于2018-12-08 20:33 被阅读0次

    attr 反射系列

    • getattr(self, "值")
    • hasattr(self, "值")

    其他不常用
    可以用字符串形式来获取一个方法,获取到的值直接加()就可以调用

        class A:
            def __init__(self, name, age):
                self.name = name
                self.age = age
        
            def __setitem__(self, key, value):
                self.__dict__[key] = value
        
            def func_a(self):
                print("test")
                
                
        
        a = A("sun", 30)
        if hasattr(a, "name"):
            name = getattr(a, "name")
            print(name)
        if hasattr(a, "func_a"):
            func = getattr(a, "func_a")
            func()
    

    双下系列

    • __init__(self) #初始化函数

        class A:
            def __init__(self, name):
                self.name = name
        
        
        a = A("sun")
        print(a.name)
      
    • __str__(self) #默认print函数,展示一个对象的内容

        def __str__(self):
            return "Is Class A"
            
            
        print(a)
      
    • __repr__(self) # 默认返回原始类型,可以重写

        def __repr__(self):
            return #你想要的结果
        
        这个方法可以用在:
        1、格式化输出%r
        2、repr()
      
    • __call__(self) # 可以再调用对象是默认执行一次你定义的东西

        def __call__(self):
            # 写你要执行的东西
            
            
        1、实例化一个对象
        2、对象+()调用
      
    • __len__(self)

        def __len__(self):
            # 写你要的东西
            一般返回一个和对象有关的特定的内容长度
            
        1、外部调用 len()时调用
      
    • __doc__(self) #打印说明文档

        class A(object):
            """测试"""
            pass
            
        print(A.__doc__)
      
    • __del__(self) # 一般不用

    • __dict__ #列出类所包含的属性、方法,对象的属性

    • __new__ # 构造方法,在实例化时最先执行的内置函数,一般不用

    item 系列

    • __getitem__(self, item) # 获取创建对象时传入的属性值

        class A:
            def __init__(self, name, age):
                self.name = name
                self.age = age
            
            def __getitem__(self, item):
                if hasattr(self, item):
                    return self.__dict__[item]
            
            
        f = A("sun", 30)
        print(f["name"])
      

    执行结果:

         sun
    
    • __setitem__(self, key, item) # 修改属性值

        class A:
            def __init__(self, name, age):
                self.name = name
                self.age = age
        
            def __setitem__(self, key, value):
                self.__dict__[key] = value
        
        
        f = A("sun", 30)
        print(f.name)
        f.__setitem__("name", "sunzheng")
        print(f.name)
      

    执行结果:

         sun
         sunzheng

    相关文章

      网友评论

          本文标题:一些内置方法

          本文链接:https://www.haomeiwen.com/subject/zklchqtx.html