面向对象(九)

0. 私有方法


  • 概念:在对象外部 不能被调用 的方法
    1. 形式
       def __方法():
           pass
    2. 示例
       class Person:
           def __play(self, ball):
               print("在打球", self, ball)
        
       p = Person()
       p.__play()
       print(Person.__dict__)
    
    3. 注意:不要定义"_类名__方法名"这种方法
    

1. 内置特殊方法


  • 信息格式化操作
    1. __str__方法
      (1) 作用:一个对象的描述字符串, 更加方便用户阅读, 对用户更好
    
      (2) 触发方式
          1) print 打印一个对象
          2) str() 函数
    
      (3) 格式
          def __str__(self):
              return "描述信息"
    
      (4) 示例
          class Person:
              def __init__(self, name, age):
                  self.name = name
                  self.age = age
    
              def __str__(self):
                  return "这个人的姓名是 %s, 这个人的年龄是:%s" % (self.name, self.age)
          p = Person("王小熊", 18)
          print(p)
          s = str(p)
          print(type(s), s)
    
    2. __repr__方法
       (1) 作用:一个对象的描述字符串, 更加方便开发人员查看, 对开发人员更友好
    
       (2) 触发方式
           1) 当我们在交互模式下, 直接执行某个变量, 就会输出对应信息
           2) repr() 函数
    
       (3) 格式
           def __repr__(self):
               return "描述信息"
    
       (4) 注意
           1) 描述一个实例对象详细的信息
           2) 一般情况下, 应满足如下等式: obj == eval(repr(obj))
    
       (5) 示例
           class Person:
               def __init__(self, name, age):
                   self.name = name
                   self.age = age
    
               def __repr__(self):
                   return "这个实例对象的类对象是 %s" % self.__class__
           p = Person("王小熊", 18)
           print(repr(p))
           print(p)
    
           import datetime
           t = datetime.datetime.now()
           print(t)
           temp = repr(t)
           result = eval(temp)
           print(result)
    

你可能感兴趣的:(面向对象(九))