一些内置方法

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

你可能感兴趣的:(一些内置方法)