学无止境

少年辛苦终身事,莫向光阴惰寸功。——唐·杜荀鹤《题弟侄书堂》


python:面向对象

  • object oriented programming
  • OOP面向对象程序设计
  • java C#只支持面向对象编程
  • python既支持面向过程编程也支持面向对象编程

  • class 类名(object)

  •  属性
    
  •  方法或者行为
    

  • 注意

  • 类名首字母大写

  • 在类中,每个方法中都要带Self参数

  • 如果在类里定义就必须有self不能忽略self代表自身self后面代表它的属性

  • object表示该类是从那个类继承下来的,通常如果没有合适的继承类,就是用object类,这是所有类最终都会继承的类
  • 属性是动态添加到对象里面而不是类里
  • 如果想要调用另外类里面的属性就需要先把那个类实例化,然后根据类属性的调用方法调用

  • 对象属性(self)是在==每一个对象建立的时候==才会出现在对象里面的==而不是类的属性==


self


  • 从创建多个对昂引入Self
  • 某个对象调用其方法时,Python解释器会把==这个对象==作为第一个参数传递给self.
  • 通俗的话讲,就是==谁调用这个方法就是谁==。
  • 创建对象时一定小心不要交换位置更不要交叉调用
  • 参数的名字不一定叫self但是我们推荐使用self


  • 特点:
  • 1、实例创建成功后有python解释器来调用该方法,这个方法不用我们手动调用
  • 2、误区,认为__init__方法用来创建对象的,初始化对象的一些数据
  • 3、创建实例对象是用__new__方法创建的,使用__new__创建实例对象后要记得返回.
  • 4、!==注意==程序是从上到下执行

str


  • 添加__str__方法,打印对象名的时候默认调用str方法
  • def str(self):
  • return '姓名'+self.name
    
  • 对象打印出来的内同取决于:__str__中return出来的内容
  • ==最后别忘了打印str!!print(实例对象)==

面向过程和面向对象编程联系和区别


  • 全局变量

  • self属性是全局变量
  • 局部变量

  • 方法中的变量和参数位置的变量均是局部变量

-# 自定义类型

  • 自定义类型也是一种类型
  • 方法的参数可以接受任意类型——————》因此自定义类型可以作为参数传递

set get


  • 隐藏数据
  • 开发时我们不推荐对象.属性名=值
  • //赋值的方法推荐set_xxx(self,参数)def
  • 好处:就是可以在函数体中实现对参数的验证
  • 取值的方法def
  • get_xxx(self) return别忘了